Android, XML: показывать только часть изображения в макете контейнера без изменения соотношения сторон

1

Я хочу установить фон для любого layout. Как правило, я бы сказал об этом, как здесь:

<LinearLayout
    android:orientation="vertical"
    android:background="#@drawale/somedrawable"
    android:gravity="center"
    android:layout_width="match_parent"
    android:layout_height="100dp"/>

Но это всегда поможет фону соответствовать LinearLayout. Но что, если макет был меньше по высоте, чем изображение, заданное в качестве фона? Я НЕ хочу разрушать пропорции изображения, а просто центрировать изображение внутри макета и иметь перекрытие по высоте, чтобы оно больше не было видно.

Чтобы уточнить:

Слева - то, что происходит в настоящее время, но справа - как я хочу быть. Поскольку контейнер макета меньше, чем imageview или фоновое изображение, предполагается, что он остается в центре, но показывает только то, что подходит без изменения соотношения сторон.

Изображение 174551

Теги:
imageview

2 ответа

1
Лучший ответ

Используйте ImageView внутри линейного макета с шириной и высотой match_parent и установите scaleType="centerCrop"

<ImageView
    android:src="@drawable/somedrawable"
    android:scaleType="centerCrop"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
0

Вы не можете применить свойство scaletype в linearlayout. Лучше использовать imageview для достижения этой цели. Ниже приведена ссылка на использование атрибута scaleType, чтобы избежать поведения сглаживания, используйте изображение 9-патча, а следующее - это ссылка для преобразования вашего изображения в 9- патч.

  • 0
    Попробуйте отредактировать или удалить этот ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню