Android масштабирование и выравнивание изображений - PullRequest
0 голосов
/ 11 ноября 2010

Я пытаюсь показать масштабированное изображение, сохраняя его соотношение сторон, но в то же время выравниваю его по низу.

Использование android: scaleType = "FitXY" приводит к центру изображения по вертикали и горизонтали, поэтому оно не выравнивается по дну. При использовании «FitEnd» изображение выравнивается по правому нижнему углу, поэтому оно не центрируется по горизонтали.

Есть ли способ обойти это? Может быть, использовать какую-то матрицу для ее масштабирования (scaleType = "matrix")?

РЕДАКТИРОВАТЬ: Чтобы немного уточнить, что именно я хочу именно ...

У меня есть ImageView, расположение которого (местоположение, размер, гравитация и т. Д.) Я не могу изменить. Я хочу загрузить растровое изображение в качестве исходного изображения, но оно будет масштабировано до размера ImageView (сохраняя соотношение сторон растрового изображения), а затем выровнено по основанию ImageView.

РЕДАКТИРОВАТЬ: Попробовав все, что я мог придумать (и все, что было предложено здесь), мы закончили с подклассом ImageView и выполнили масштабирование / перевод сами в onDraw.

Ответы [ 3 ]

1 голос
/ 11 ноября 2010

Попробуйте использовать android:scaleType="centerInside" вместо fitXY.


Макет, используемый в приложении Blrfl Labs, для масштабирования изображения в соответствии с областью, которую макет дает ему без потери соотношения сторон:

    <ImageView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="1.0"
            android:gravity="center"
            android:src="@drawable/blah_blah_blah"
            android:scaleType="centerInside"
            android:adjustViewBounds="false"
    />
1 голос
/ 21 августа 2014

Вы можете использовать

android:layout_centerHorizontal="true"
android:scaleType="fitEnd"

, если ваш ImageView находится внутри RelativeLayout.

0 голосов
/ 11 ноября 2010

Не проверено, но попробуйте добавить:

android:layout_gravity="bottom|center_horizontal"

к вашему ImageView вместе с масштабированием FitXY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...