总结android:scaleType的使用

准备两张图片:

小图片:(72*72)

大图片:(600*403)

使用的布局文件:

<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设置为CENTER时。

解释:

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

使用小图片的效果:


使用大图片的效果:


当android:scaleType设置为CENTERCROP时。

解释:

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

使用小图片的效果:


使用大图片的效果:


当android:scaleType设置为CENTERINSIDE时。

解释:

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

小图片显示效果:

使用大图片效果:



当android:scaleType设置为FITCENTER时。

解释:

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

小图片效果:

大图片显示效果:

当android:scaleType设置为FITXY时。

解释:

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

小图显示结果:

使用大图片的效果:

当android:scaleType设置为FITSTART时。

解释:

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

小图片显示结果:

使用大图片效果:


当android:scaleType设置为FITEND

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

小图片效果:

使用大图片效果:






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值