Растянуть изображение в ImageView

У меня есть ImageView, который имеет высоту и ширину, установленную в «fill_parent» с помощью Relative Layout, которая имеет те же самые значения. Set Set scaleType = "fitXY"

Здесь XML-макет:

<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"> <ImageView android:id="@+id/imageView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scaleType="fitXY" android:src="@drawable/background_image" /> </RelativeLayout> 

Подходит для ширины и высоты, но изображение растянуто.

Это то, что должен делать fitXY . Вы можете попробовать с помощью CenterInside, если вы не хотите обрезать изображение или centerCrop, если хотите заполнить все пространство (и обрезать изображение).

Вот хороший список с примерами, чтобы лучше понять масштабные типы:

http://etcodehome.blogspot.it/2011/05/android-imageview-scaletype-samples.html

Эти два свойства решили проблему для меня:

 android:scaleType="fitXY" android:adjustViewBounds="true" 
 package utils; import android.content.Context; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.widget.ImageView; /** * Created by Navneet Boghani on 7/7/16. */ public class ProportionalImageView extends ImageView { public ProportionalImageView(Context context) { super(context); } public ProportionalImageView(Context context, AttributeSet attrs) { super(context, attrs); } public ProportionalImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { Drawable d = getDrawable(); if (d != null) { // int w = MeasureSpec.getSize(widthMeasureSpec); // int h = w * d.getIntrinsicHeight() / d.getIntrinsicWidth(); int h = MeasureSpec.getSize(heightMeasureSpec); int w = h * d.getIntrinsicWidth() / d.getIntrinsicHeight(); setMeasuredDimension(w, h); } else super.onMeasure(widthMeasureSpec, heightMeasureSpec); } } 
Intereting Posts
Открытие подзадачи несколько раз приводит к тому, что InstanceCountViolation, несмотря на уничтожение Панель инструментов AppBarLayout закрывает панель инструментов Как создать Observable в Android? Android WebView удаляет файлы cookie из определенного домена Как настроить репозитории Git для разработки Android в Eclipse? Как динамически создавать дочерние элементы в expandablelistview, щелкая родительский узел в android Почему нам нужно больше одного манифеста для проекта Android? EditText maxLines не работает – пользователь может все еще вводить больше строк, чем установлено Проведите по экрану, чтобы удалить список Ассоциированная сертификация разработчика Android Нужно ли нам копировать шрифт TTF каждый раз, когда мы хотим изменить шрифт в приложении SpinnerPreference? (Как встроить Spinner в экран настроек) Использование Appium для автоматизации гибридного приложения Утечка памяти Android между действиями OnItemClickListener не работает, но OnItemLongClickListener работает над GridView