Android ImageView 的scaleType属性简介

Android 3xcn.com@站长2021年8月19日 pm7:41发布3年前 (2021)更新
0
导航号,我的单页导航
目录

前言

最近在自定义ImageView时用到scaleType属性,因此在这里整(摘)理(抄)一下,方便自己查阅。

好记性不如烂笔头

正文

scaleType该属性指定让ImageView如何显示图片,包括是否进行缩放、等比缩放、缩放后展示位置等。

Android 提供了八种scaleType的属性值分别如下:

    public static enum ScaleType {
        MATRIX,
        FIT_XY,
        FIT_START,
        FIT_CENTER,
        FIT_END,
        CENTER,
        CENTER_CROP,
        CENTER_INSIDE;
    }

PS: xml和java都可以配置ImageView的属性。

下面单独对每一种简单的介绍一下,如果要图解,推荐看文末的第一个参考链接,该作者特意附上了图片描述。感谢。

MATRIX

用矩阵来绘制,可以动态缩放、移动和旋转等操作图片。

这个需要配合setImageMatrix()来使用。

举个例子

imageView.setScaleType(ImageView.ScaleType.MATRIX);
Matrix matrix = new Matrix(); 
matrix.preRotate(90); //顺时针旋转90
imageView.setImageMatrix(matrix);

FIT_XY

图片缩放并全铺到View上,不是等比缩放。

FIT_START

把图片按比例扩大/缩小到View的高宽上,从左或者上部开始显示。

  1. 如果图片的宽大于View的宽,就显示在上部。(下部空白)
  2. 如果图片的高大于View的高,就显示在左部。(右部空白)

FIT_CENTER

这个是ImageView的默认模式。图片会被等比缩放到能够填充控件大小,并居中显示。(存在上下空白)

FIT_END

这个跟FIT_START刚好相反。

把图片按比例扩大/缩小到View的高宽上,从右或者底部开始显示。

  1. 如果图片的宽大于View的宽,就显示在底部。(上部空白)
  2. 如果图片的高大于View的高,就显示在右部。(左部空白)

CENTER

按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示。

PS:这个会截取中心图片显示。

CENTER_CROP

按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)

CENTER_INSIDE

将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽,并居中显示。

参考文章

  1. Android ImageView 的scaleType 属性图解
  2. setScaleType的各种情况

版权声明 1、 本站名称 91易搜
2、 本站网址 https://www.91es.com/
3、 本站部分文章来源于网络,仅供学习与参考,如有侵权请留言
4、 本站禁止发布或转载任何违法的相关信息,如有发现请向站长举报
导航号,我的单页导航

暂无评论

评论审核已启用。您的评论可能需要一段时间后才能被显示。

暂无评论...