Атрибут ScaleType для ImageView


Атрибут ScaleType для ImageView позволяет изменять границы (размер) изображения относительно родительского View элемента. Этот атрибут мы рассмотрим на практическом примере, задавая для него различные значения. Я постарался подобрать достаточно большое изображение, чтобы понять, как происходит изменение его размеров. Информацию об этом атрибуте вы также можете получить из официальной доки.

Итак, создадим приложение-заготовку.

1. Layout — res/layout/activity_main.xml

<LinearLayout
    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"

    tools:context=".MainActivity">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:src="@drawable/tree"
        android:scaleType="center"/>

</LinearLayout>

2. Я добавил в папку drawable изображение с именем tree.gif.

3. Создадим MainActivity.java

package ru.androiddocs.scaletype;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;


public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

center

Первоначально мы задали значение атрибута ScaleTypecenter: система попытается разместить изображение по центру (горизонтально и вертикально) без изменения его размера. Получится примерно так:

Атрибут ScaleType для ImageView

fitXY

При значении fitXY размеры картинки будут изменены таким образом, чтобы оно заполнило экран по вертикали и горизонтали.

Атрибут ScaleType для ImageView

fitStart

Значение fitStart меняет размеры картинки, чтобы оно поместилось от левого верхнего угла экрана.

Атрибут ScaleType для ImageView

fitEnd

Значение fitEnd работает как fitStart, только теперь точка отсчета правый нижний угол экрана.

Атрибут ScaleType для ImageView

fitCenter

fitCenter изменяет размеры картинки так, чтобы оно вместилось в экран и разместилось по центру (вертикально и горизонтально).

Атрибут ScaleType для ImageView

centerCrop

centerCrop изменяет размеры изображения равномерно по оси X и Y, помещая изображение по центру и заполняя весь экран. При этом часть изображения может не поместиться в границы родительского элемента, то есть оба измерения картинки будут равны или больше размеров экрана.

Атрибут ScaleType для ImageView

centerInside

Значение centerInside помещает картинку в центр, изменяя ее размеры так, что они оказываются равными или меньшими, чем границы родителя.

Атрибут ScaleType для ImageView

matrix

Атрибут matrix изменяет размеры изображения, используя его матрицу (это отдельная тема).

Атрибут ScaleType для ImageView

один комментарий на “Атрибут ScaleType для ImageView

  1. Mary

    Спасибо!!! Скажите, пожалуйста, когда будут новые статьи???

    Reply

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*