ImageView.ScaleType详解(多图)
来源:互联网 发布:java贪吃蛇大作战源码 编辑:程序博客网 时间:2024/05/22 13:06
ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。
设置的方式包括:
1. 在layout xml中定义android:scaleType=”CENTER”
2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);
结论:
(fitCenter只比centerInside多了一个等比放大,缩小时无区别。)
假如不明确指明的话,默认为fitCenter,下面以图文方式详细说明。
测试图片1:正方形,200x200 (px) 测试图片2:长方形,100x150 (px)
1. center : 按图片的原来size居中显示,图片不缩放,图片不填充满view,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
2. centerCrop : 按比例扩大或缩小图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)。即图片填充满view,使图片的短边缩放到与view的边相等;长边以中心点起始向外裁剪,直到填充满view的另一垂直边
3.centerInside : 将图片的内容完整居中显示,不填满,通过按比例缩小图片使得图片长/宽等于或小于View的长/宽。即使图片的长边缩小(不放大)到与view的边相等;短边肯定够不到另一垂直边,所以短边处会露出背景
4.fitCenter : 把图片按比例扩大/缩小,直到图片的长边与view的边相等,居中显示,会填满,不会被裁剪,但图片的短边处会露出背景
5.fitStart : fitStart , fitEnd在图片缩放效果上与fitCenter一样,只是显示的位置不同,fitStart 是置于顶部,fitCenter居中,fitEnd置于底部。
6.fitEnd : fitStart , fitEnd在图片缩放效果上与fitCenter一样,只是显示的位置不同,fitStart 是置于顶部,fitCenter居中,fitEnd置于底部。
7.fitXY : 不按比例缩放图片,目标是把图片塞满整个View。不会被裁剪,但会被拉伸。
8.matriX :用矩阵从(0,0)点处来绘制,按图片的原来size居中显示,图片不缩放,动态缩小放大图片来显示,框出多少就是多少,框完就有富余,没框完就会被裁剪(从左上角处往右下角处裁),刚好框完就刚好充满view
另:wrap_content模式时不管图片是正方形还是长方形,与scaleType无关:
完整demo下载地址:https://github.com/taoranziwangji/ImageViewScaleTypeDemo
- ImageView.ScaleType详解(多图)
- imageview的scaleType详解(附图)
- Android ImageView.ScaleType详解
- Android--ImageView.ScaleType详解
- ImageView的scaletype详解
- ImageView的scaleType详解
- ImageView的ScaleType详解
- ImageView中的ScaleType详解
- ImageView.ScaleType 属性详解
- ImageView的scaleType详解
- ImageView的ScaleType详解
- ImageView.ScaleType详解
- ImageView ScaleType详解
- ImageView的scaleType详解
- ImageView.setScaleType(ImageView.ScaleType)
- ImageView.setScaleType(ImageView.ScaleType)
- ImageView android:scaleType属性详解
- Android ImageView.ScaleType 属相详解
- hdu 2822 Dogs (优先队列 + BFS)
- .net应用程序和TW3的ADS之间通讯
- USB----调用过程和简单解释
- *p++和*++p
- 特殊回文数
- ImageView.ScaleType详解(多图)
- 【数据结构】邻接矩阵表示法的图的深度广度优先遍历递归和非递归遍历
- 【LCT】BZOJ 3669: [Noi2014]魔法森林
- mac通过homebrew安装redis及相关命令操作
- php通过字符串调用函数示例
- nhandled exception in thread started by <function wrapper at 0x035BA3F0>
- 关于Calendar和java.util.Date.Date()一些笔记(知识不停累积中)。
- 透过浏览器看HTTP缓存
- Xcode重构,不懂这些你就 out了!