Android изменить размер ImageView с гравитацией = слева - PullRequest
0 голосов
/ 11 мая 2018

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

Если я установлю layout_height на любое значение, android автоматически изменяет ширину, чтобы сохранить соотношение сторон (что хорошо), но заполнитель сохраняет первоначальную ширину, а новый измененный размер значка центрируется в пространстве, в которое он должен был поместиться

Чтобы продемонстрировать ситуацию, я взял этот отпечаток

enter image description here

Левая и правая иконки имеют одинаковое измерение в исходном файле

<ImageView
            android:id="@+id/leftThumb"
            android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:foregroundGravity="left"
            android:src="@drawable/ic_left_thumb" />

        <ImageView
            android:id="@+id/rightThumb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:src="@drawable/ic_right_thumb" />

установить только высоту изображения и можно ли изменить его размер, сохраняя гравитацию слева?(как на рисунке ниже)

enter image description here

Ответы [ 2 ]

0 голосов
/ 12 мая 2018

Ответ был довольно прост ... в ImageView есть свойство, которое сообщает Android, как действовать, когда ему нужно масштабировать изображение:

андроида: scaleType

так что настройте его правильно у меня

<ImageView
        android:id="@+id/leftThumb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="fitStart"
        android:src="@drawable/ic_left_thumb"
        />

    <ImageView
        android:id="@+id/rightThumb"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:scaleType="fitEnd"
        android:layout_alignParentEnd="true"
        android:src="@drawable/ic_right_thumb" />

Таким образом, вместо размещения значка в центре держателя, он будет подгоняться к краям

enter image description here

0 голосов
/ 11 мая 2018

Это довольно просто.

Установите нужную высоту родительского макета и его дочернюю высоту равными "match_parent" Вы можете использовать " Измерение".xml"файлы для управления размерами экрана разных размеров, сейчас я установил статическое значение" 64dp " android: layout_height =" 64dp "

<RelativeLayout
        android:background="@color/colorPrimary"
        android:layout_width="match_parent"
        android:layout_height="64dp">
        <ImageView
            android:id="@+id/leftThumb"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentLeft="true"
            android:src="@drawable/ic_left_thumb" />

        <ImageView
            android:id="@+id/rightThumb"
             android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_alignParentRight="true"
            android:src="@drawable/ic_right_thumb" />
</RelativeLayout>
...