Масштабирование через свойство Scale Type 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Масштабирование через свойство Scale Type



Для масштабирования картинки в ImageView есть свойство Scale Type и соответствующий ему атрибут android:scaleType и перечисление ImageView.ScaleType.

Допустим, у нас есть простенькая разметка:

 

<?xml version="1.0" encoding="UTF-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/LinearLayout1"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:padding="5dp" >

 

<ImageView

android:id="@+id/icon"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#fa2255"

android:src="@drawable/catlove" />

 

</LinearLayout>

Для наглядности я задал красный цвет для фона ImageView. По умолчанию, у меня картинка установилась в режиме android:scaleType="fitCenter".

Если выбрать режим android:scaleType="fitStart", то картинка прижимается к левому верхнему углу и таким образом заполняет верхнюю половину ImageView.

Значение android:scaleType="fitEnd" сместит картинку в нижнюю часть контейнера.

Режим android:scaleType="center" выводит картинку в центре без растягивания. Аналогично в моём случае повела себя картинка и в режиме android:scaleType="centerInside". Если у вас будет картинка большего размера, то она смаштабируется, чтобы поместиться в центре.

Режим android:scaleType="centerCrop" равномерно растягивает картинку, чтобы заполнить весь контейнер и обрезает лишнее.

android:scaleType="fitXY" растягивает/сжимает картинку, чтобы подогнать её к контейнеру.

Последний атрибут android:scaleType="matrix" вывел картинку без изменений в левом верхнем углу.

Атрибут android:adjustViewBounds="true"

При использовании атрибута scaleType="fitCenter" из предыдущего примера Android вычисляет размеры самой картинки, игнорируя размеры ImageView. В этом случае ваша разметка может "поехать". Атрибут adjustViewBounds заставляет картинку подчиниться размеру компонента-контейнера. В некоторых случаях это может не сработать, например, если у ImageView установлен атрибут layout_width="0dip". В таком случае поместите ImageView в RelativeLayout или FrameLayout и используйте значение 0dip для этих контейнеров.



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 423; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.27.232 (0.016 с.)