ImageView的属性android:scaleType作用
2015-09-10 16:08
513 查看
在网上查了好多资料,大致都雷同,大家都是互相抄袭的,看着很费劲,不好理解,自己总结一下,留着需要看的话来查找。
代码中的例子如下:
通过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"。
此间通过阅读网友的一篇日志,对此也有更详细的解释,大家可以参考:
http://blog.sina.com.cn/s/blog_407abb0d0100mao1.html
用代码展示着几个属性的效果,效果截图:
主界面:
![](http://images.cnitblog.com/blog/453160/201302/27094243-83a760dd26bb4274b2b21d6f89b2b338.jpg)
CENTER效果:
![](http://images.cnitblog.com/blog/453160/201302/27094244-f9052a06e5564b9f8fd2ee4950aa70aa.jpg)
CENTER_CROP效果:
![](http://images.cnitblog.com/blog/453160/201302/27094245-ff640cb99abb47daa843f4974163aa9d.jpg)
CENTER_INSIDE效果:
![](http://images.cnitblog.com/blog/453160/201302/27094246-d1801c6536a44edb9a09f6b664937b03.jpg)
FIT_CENTER效果:
![](http://images.cnitblog.com/blog/453160/201302/27094247-645a8a750e55414584de8df39bca01ce.jpg)
FIT_START效果:
![](http://images.cnitblog.com/blog/453160/201302/27094248-937e27cc256243efbb8cae6880005e95.jpg)
FIT_END效果:
![](http://images.cnitblog.com/blog/453160/201302/27094249-88381738a9d14b6eaaca315dd9b9862f.jpg)
FIT_XY效果:
![](http://images.cnitblog.com/blog/453160/201302/27094250-787441c2460841cab28bac974d308b42.jpg)
MATRIX效果:
![](http://images.cnitblog.com/blog/453160/201302/27094251-b50f112977474c99bbb957223ee7f62a.jpg)
结果分析:
我选取的原始图片明显标志如下:左上角有蝴蝶、花朵,右下角为一个蝗虫,且图片像素大于 320×480,各种类型的差异通过查看图片的明显标志即可窥见一斑。比如FIT_START,填充于屏幕上方,并等比例缩放;相反,FIT_END置于屏幕下方,而FIT_CENTER则在中间。CENTER_CROP裁剪了图片的中间部分填充屏幕。其它类型可自行查看分析。
代码中的例子如下:
<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"。
此间通过阅读网友的一篇日志,对此也有更详细的解释,大家可以参考:
http://blog.sina.com.cn/s/blog_407abb0d0100mao1.html
用代码展示着几个属性的效果,效果截图:
主界面:
![](http://images.cnitblog.com/blog/453160/201302/27094243-83a760dd26bb4274b2b21d6f89b2b338.jpg)
CENTER效果:
![](http://images.cnitblog.com/blog/453160/201302/27094244-f9052a06e5564b9f8fd2ee4950aa70aa.jpg)
CENTER_CROP效果:
![](http://images.cnitblog.com/blog/453160/201302/27094245-ff640cb99abb47daa843f4974163aa9d.jpg)
CENTER_INSIDE效果:
![](http://images.cnitblog.com/blog/453160/201302/27094246-d1801c6536a44edb9a09f6b664937b03.jpg)
FIT_CENTER效果:
![](http://images.cnitblog.com/blog/453160/201302/27094247-645a8a750e55414584de8df39bca01ce.jpg)
FIT_START效果:
![](http://images.cnitblog.com/blog/453160/201302/27094248-937e27cc256243efbb8cae6880005e95.jpg)
FIT_END效果:
![](http://images.cnitblog.com/blog/453160/201302/27094249-88381738a9d14b6eaaca315dd9b9862f.jpg)
FIT_XY效果:
![](http://images.cnitblog.com/blog/453160/201302/27094250-787441c2460841cab28bac974d308b42.jpg)
MATRIX效果:
![](http://images.cnitblog.com/blog/453160/201302/27094251-b50f112977474c99bbb957223ee7f62a.jpg)
结果分析:
我选取的原始图片明显标志如下:左上角有蝴蝶、花朵,右下角为一个蝗虫,且图片像素大于 320×480,各种类型的差异通过查看图片的明显标志即可窥见一斑。比如FIT_START,填充于屏幕上方,并等比例缩放;相反,FIT_END置于屏幕下方,而FIT_CENTER则在中间。CENTER_CROP裁剪了图片的中间部分填充屏幕。其它类型可自行查看分析。
相关文章推荐
- 关于android sdk path 问题的彻底解决方法 Android_SDK_HOME
- Android 强引用,弱引用,软引用,虚引用
- Android 混淆代码总结
- Optimizing Java Code(Pro Android Apps Performance Optimization)
- android Loaders介绍
- android常用工具类
- Android悬浮窗实现 使用WindowManager
- [Android Studio 权威教程]打包、生成jks密钥、签名Apk、多渠道打包
- Android AlertDialog
- android批量文件上传(android批量图片上传)
- Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
- Android apk动态加载机制的研究
- 实现Android 动态加载APK(Fragment or Activity实现)
- Android Picasso异步加载图片库
- 关于android版本截图功能
- android SQLiteOpenHelper使用示例
- spanned android
- android 设计模式——单例模式
- Android一个边下载边存储的启发例子
- Android开发之动画效果浅析