Я хочу установить фон для любого layout
. Как правило, я бы сказал об этом, как здесь:
<LinearLayout
android:orientation="vertical"
android:background="#@drawale/somedrawable"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="100dp"/>
Но это всегда поможет фону соответствовать LinearLayout
. Но что, если макет был меньше по высоте, чем изображение, заданное в качестве фона? Я НЕ хочу разрушать пропорции изображения, а просто центрировать изображение внутри макета и иметь перекрытие по высоте, чтобы оно больше не было видно.
Чтобы уточнить:
Слева - то, что происходит в настоящее время, но справа - как я хочу быть. Поскольку контейнер макета меньше, чем imageview
или фоновое изображение, предполагается, что он остается в центре, но показывает только то, что подходит без изменения соотношения сторон.
Используйте ImageView внутри линейного макета с шириной и высотой match_parent и установите scaleType="centerCrop"
<ImageView
android:src="@drawable/somedrawable"
android:scaleType="centerCrop"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Вы не можете применить свойство scaletype в linearlayout. Лучше использовать imageview для достижения этой цели. Ниже приведена ссылка на использование атрибута scaleType, чтобы избежать поведения сглаживания, используйте изображение 9-патча, а следующее - это ссылка для преобразования вашего изображения в 9- патч.