注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
huanghai381的个人空间 https://home.eeworld.com.cn/space-uid-480041.html [收藏] [复制] [分享] [RSS]
日志

ImageView的属性android:scaleType的作用分析

已有 2160 次阅读2014-9-2 10:51 |个人分类:安卓开发| android

代码中的例子如下:
复制代码 代码如下:

<ImageView
            android:id="@+id/iv_bit_1"
            android:layout_width="@dimen/passcode_width"
            android:layout_height="@dimen/passcode_height"
            android:scaleType="fitXY" />
        <ImageView
            android:id="@+id/iv_bit_2"
            android:layout_width="@dimen/passcode_width"
            android:layout_height="@dimen/passcode_height"
            android:scaleType="fitXY" />
        <ImageView
            android:id="@+id/iv_bit_3"
            android:layout_width="@dimen/passcode_width"
            android:layout_height="@dimen/passcode_height"
            android:scaleType="fitXY" />
        <ImageView
            android:id="@+id/iv_bit_4"
            android:layout_width="@dimen/passcode_width"
            android:layout_height="@dimen/passcode_height"
            android:scaleType="fitXY" />
        <ImageView
            android:id="@+id/iv_bit_5"
            android:layout_width="@dimen/passcode_width"
            android:layout_height="@dimen/passcode_height"
            android:scaleType="fitXY" />
        <ImageView
            android:id="@+id/iv_bit_6"
            android:layout_width="@dimen/passcode_width"
            android:layout_height="@dimen/passcode_height"
            android:scaleType="fitXY" />

通过API的查询得知,
ImageView.ScaleType的结构为:

继承关系
public static final enum ImageView.ScaleType extends Enum<E extends Enum<E>>
java.lang.Object
java.lang.Enum<E extends java.lang.Enum<E>>
android.widget.ImageView.ScaleType

类概述
将图片边界缩放,以适应视图边界时的可选项。

常量
public static final ImageView.ScaleType CENTER
在视图中使图像居中,不执行缩放。 在 XML 中可以使用的语法: android:scaleType="center"。
public static final ImageView.ScaleType CENTER_CROP
均衡的缩放图像(保持图像原始比例),使图片的两个坐标(宽、高)都大于等于 相应的视图坐标(负的内边距)。图像则位于视图的中央。 在 XML 中可以使用的语法:android:scaleType="centerCrop"。
public static final ImageView.ScaleType CENTER_INSIDE
均衡的缩放图像(保持图像原始比例),使图片的两个坐标(宽、高)都小于等于 相应的视图坐标(负的内边距)。图像则位于视图的中央。 在 XML 中可以使用的语法:android:scaleType="centerInside"。
public static final ImageView.ScaleType FIT_CENTER
使用 CENTER 方式缩放图像。 在 XML 中可以使用的语法: android:scaleType="fitCenter"。
public static final ImageView.ScaleType FIT_END
使用 END 方式缩放图像。 在 XML 中可以使用的语法: android:scaleType="fitEnd"。
public static final ImageView.ScaleType FIT_START
使用 START 方式缩放图像。 在 XML 中可以使用的语法:android:scaleType="fitStart"。
public static final ImageView.ScaleType FIT_XY
使用 FILL 方式缩放图像。 在 XML 中可以使用的语法: android:scaleType="fitXY"。
public static final ImageView.ScaleType MATRIX
绘制时,使用图像矩阵方式缩放。图像矩阵可以通过 setImageMatrix(Matrix) 设置。在 XML 中可以使用的语法: android:scaleType="matrix"。
用代码展示着几个属性的效果,效果截图:
主界面:

clip_image001[4]

CENTER效果:

clip_image002[4]

CENTER_CROP效果:

clip_image003[4]

CENTER_INSIDE效果:

clip_image004[4]

FIT_CENTER效果:

clip_image005[4]

FIT_START效果:

clip_image006[4]

FIT_END效果:

clip_image007[4]

FIT_XY效果:

clip_image008[4]

MATRIX效果:

clip_image009[4]

结果分析:
我选取的原始图片明显标志如下:左上角有蝴蝶、花朵,右下角为一个蝗虫,且图片像素大于 320×480,各种类型的差异通过查看图片的明显标志即可窥见一斑。比如FIT_START,填充于屏幕上方,并等比例缩放;相反,FIT_END置于屏幕下方,而FIT_CENTER则在中间。CENTER_CROP裁剪了图片的中间部分填充屏幕。其它类型可自行查看分析。





android:scaleType="center" 

以原图的几何中心点和ImagView的几何中心点为基准,按图片的原来size居中显示,不缩放,当图片长/宽超过View的长/宽,则截取图片的居中部分显示ImageView的size.当图片小于View 的长宽时,只显示图片的size,不剪裁。

android:scaleType="centerCrop"

 以原图的几何中心点和ImagView的几何中心点为基准,按比例扩大(图片小于View的宽时)图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽),并按View的大小截取图片。当原图的size大于ImageView时,按比例缩小图片,使得长宽中有一向等于ImageView,另一向大于ImageView。实际上,使得原图的size大于等于ImageView的长(宽)


android:scaleType="centerInside"

 以原图的几何中心点和ImagView的几何中心点为基准,将图片的内容完整居中显示,通过按比例缩小原来的size使得图片长(宽)等于或小于ImageView的长(宽)。


android:scaleType="fitCenter" 把图片按比例扩大(缩小)到View的宽度,居中显示

android:scaleType="fitEnd把图片按比例扩大(缩小)到View的宽度,显示在View的下部分位置

android:scaleType="fitStart把图片按比例扩大(缩小)到View的宽度,显示在View的上部分位置

android:scaleType="fitXY" 把图片按照指定的大小在View中显示,拉伸显示图片,不保持原比例,填满View.


android:scaleType="matrix" 用matrix来绘制(默认)。


评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章