总结android:scaleType的使用

准备两张图片:

小图片:(72*72)

大图片:(600*403)

总结android:scaleType的使用_第1张图片

使用的布局文件:

<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"
    tools:context=".MainActivity">

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

</RelativeLayout>

java文件:

package zy.just.com.scaletypedemo;

import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;

public class MainActivity extends AppCompatActivity {

    private ImageView image;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        image = (ImageView) findViewById(R.id.image);
//        image.setScaleType(ImageView.ScaleType.CENTER);
 //   image.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
 //       image.setScaleType(ImageView.ScaleType.CENTER_CROP);
 //       image.setScaleType(ImageView.ScaleType.FIT_CENTER);
 image.setScaleType(ImageView.ScaleType.FIT_END);
 //      image.setScaleType(ImageView.ScaleType.FIT_START);
  //     image.setScaleType(ImageView.ScaleType.FIT_XY);
//        image.setScaleType(ImageView.ScaleType.MATRIX);
        //使用小图片
        //image.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.small_picture));
        //使用大图片
        image.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.big_picture));
    }
}

android:scaleType设置为MATRIX,其中MATRIX为默认值。

解释:

不改变原图的大小,从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理。

小图片效果图:

总结android:scaleType的使用_第2张图片

大图片效果图:

总结android:scaleType的使用_第3张图片


当android:scaleType设置为CENTER时。

解释:

保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。

使用小图片的效果:


使用大图片的效果:

总结android:scaleType的使用_第4张图片


当android:scaleType设置为CENTERCROP时。

解释:

以填满整个ImageView为目的,将原图的中心对准ImageView的中心,等比例放大原图,直到填满ImageView为止(指的是ImageView的宽和高都要填满),原图超过ImageView的部分作裁剪处理。

使用小图片的效果:


使用大图片的效果:

总结android:scaleType的使用_第5张图片


当android:scaleType设置为CENTERINSIDE时。

解释:

以原图完全显示为目的,将图片的内容完整居中显示,通过按比例缩小原图的size()等于或小于ImageView的宽()如果原图的size本身就小于ImageViewsize,则原图的size不作任何处理,居中显示在ImageView

小图片显示效果:

总结android:scaleType的使用_第6张图片

使用大图片效果:



当android:scaleType设置为FITCENTER时。

解释:

其实是将图片的宽比上imageview的宽。假设值为a1,图片的高比上imageview的高,假设值为a2。如果图片超出imageview,不管是宽度上,还是高度上。就要对图片进行缩小处理,并且居中显示,而且缩小的比例值k的取值为a1a2中较大的一个值,才能完整的将图片缩进到imageview中。如果图片小于imageview,即图片的宽高都要小于Imageview,那么取a1a2中较大的一个值来作为扩大的比例值k。根据这个k值来扩大图片。

小图片效果:

总结android:scaleType的使用_第7张图片

大图片显示效果:

当android:scaleType设置为FITXY时。

解释:

把原图按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageView.

小图显示结果:

总结android:scaleType的使用_第8张图片

使用大图片的效果:

总结android:scaleType的使用_第9张图片

当android:scaleType设置为FITSTART时。

解释:

把原图按比例扩大(缩小)到ImageView的宽度(或高度),去最先达到的,显示在ImageView的上部分位置。

小图片显示结果:

使用大图片效果:

总结android:scaleType的使用_第10张图片

当android:scaleType设置为FITEND

把原图按比例扩大(缩小)到ImageView的宽度(或高度),取最先达到的,显示在ImageView的下部分位置。

小图片效果:

总结android:scaleType的使用_第11张图片

使用大图片效果:

总结android:scaleType的使用_第12张图片





你可能感兴趣的:(center,fitcenter,centerInside,centerCrop)