Как масштабировать ширину Android ImageView в соответствии с layout_alignTop и layout_alignBottom

Я хотел бы иметь простой вид игрока с изображением, именем и статусом. Изображение будет загружено через Google+.

У меня проблема в том, что с большими изображениями мой ImageView становится слишком широким и выталкивает мои тексты из поля зрения.

Вот пример, чтобы показать, как это выглядит: https://dl.dropboxusercontent.com/u/11037539/unwanted_padding.png

Планировка:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/playerPane"
    android:background="@color/player2">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/playerName"
        android:layout_alignBottom="@+id/playerStatus"
        android:id="@+id/playerImage"
        android:src="@drawable/ic_contact_picture"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/playerImage"
        android:id="@+id/playerName"
        android:text="Player"
        android:textColor="@android:color/black"
        android:singleLine="true"
        android:textStyle="bold"
        android:paddingTop="@dimen/player_padding"
        android:paddingBottom="@dimen/player_padding"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/playerName"
        android:layout_alignLeft="@+id/playerName"
        android:id="@+id/playerStatus"
        android:text="status"
        android:singleLine="true"
        android:paddingBottom="@dimen/player_padding" />
</RelativeLayout>

Я перепробовал все ImageView.scaleTypes, но пока ничего не работает..

Большое спасибо за вашу помощь!

2 ответа

Решение

Вам просто нужно определить свою ширину. Это должно исправить это. Так что измени эту строку

что-то вроде:

   <ImageView
        android:layout_width="75dp" //OR WHATEVER LOOKS BEST

ScaleType действительно полезен только тогда, когда размер изображения меньше, чем изображение. Как упоминалось ранее, установите размер, а затем вы можете использовать scaleType, чтобы установить, как изображение должно масштабироваться в пределах теперь меньшей области.

Другие вопросы по тегам