android imageview wrap_content
Всем привет и спасибо за вашу помощь.
У меня есть проект в Android Studio.
Я использую ImageView внутри вертикальной LinearLayout.
Вот мои параметры;
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView2"
android:src="@drawable/myimg"
/>
Вы можете видеть мое изображение внизу (красный блок) и границы просмотра изображений (синяя линия), с шириной проблем нет, это 100% моего макета, но я хочу, чтобы мое изображение соответствовало области, сохраняя соотношение сторон. как вы можете видеть на изображении, есть пробелы, высота ImageView больше моего изображения, как я могу разместить изображение в ImageView?
Я хочу это, потому что я хочу, чтобы это изображение соответствовало ширине, даже если телефон является портретным или альбомным.
5 ответов
В imageview есть опция центра обрезки -
android:scaleType="centerCrop"
Что он будет делать, так это обрезать изображение из центра. Выход будет как -
Ваш код написан, но я не знаю о родительском макете, а фон изображения у вас белый, а красный - середина на этом фоне.
Вот код с родительским расположением относительно
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MyActivity">
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/red"
/>
Размер imageview
Вы должны масштабировать свои изображения соответственно.ImageView
имеет свойство масштабирования. Попробуйте это android:scaleType="fitXY"
и дай мне знать.
За ImageView
, android:scaleType="fitXY"
потеряет аспект. Лучше использовать android:scaleType="fitCenter"
и установить фон для imageView transparent
,
Если вы не хотите сохранять аспект, то setbackground()
или же fitxy
выполнит ваше требование