【转】ImageView.ScaleType属性
原文网址:https://blog.csdn.net/Buaaroid/article/details/49360779
ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。
设置的方式包括:
1. 在layout xml中定义android:scaleType="CENTER"
2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);
接下来,将对ScaleType的值和对应的显示效果用最直观的方式——真图演示的方法,来进行说明。
下面附上效果图:
原图为Pocoyo的头像,上图为原图的size大于ImageView的size,下图为原图的size小于ImageView的size

android:adjustViewBounds
ImageView的android:adjustViewBounds属性为是否保持原图的长宽比,单独设置不起作用,需要配合maxWidth或maxHeight一起使用。
- <ImageView
- android:id="@+id/imageView1"
- android:layout_width="fill_parent"
- android:layout_height="200dip"
- android:adjustViewBounds="false"
- android:scaleType="centerInside"//此处每次更改
- android:src="@drawable/ic_3" />//此处两幅图间更改,一副图的大小较小,另一幅的较大。
- <ImageView
- android:id="@+id/imageView2"
- android:layout_width="fill_parent"
- android:layout_height="200dip"
- android:adjustViewBounds="true"
- android:scaleType="centerInside"//此处每次更改
- android:src="@drawable/ic_3" />//此处两幅图间更改,一副图的大小较小,另一幅的较大。
(代码为了证明,adjustViewBonds单独设置无影响。)
- - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
依本人之见,scaletype的种类分为三类matrix(默认)、fit-X类、和center类。
matrix就不多说。
fit-X类中,
fitStart、fitCenter和fitEnd之间的都是根据需要使原图改变对ImgView进行适应,按matrix进行绘制,但它们
的区别在于基准不同。fitStart的基准为最上角的点(即matrix方式开始的点)fitCenter的基准点为中间的点
(matrix方式中可以使图片居中的点),而fitEnd的基准点为右下角的点(即matrix方式最后绘制点)。
fit-类与下文有出入,实际用到时验证。
center类
中,center、centerCrop、centerInside都是以原图的几何中心点和ImagView的几何中心点为基准,且只绘制
ImagView大小的图像,不同的是是否保持原图大小和绘图的目标不同、采取的手段不同。
- - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
android:scaleType="center"
保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。
android:scaleType="centerCrop"
以填满整个ImageView为目的,将原图的中心对准ImageView的中心,等比例放大原图,直到填满ImageView为止(指的是ImageView的宽和高都要填满),原图超过ImageView的部分作裁剪处理。
android:scaleType="centerInside"
以原图完全显示为目的,将图片的内容完整居中显示,通过按比例缩小原图的size宽(高)等于或小于ImageView的宽(高)。如果原图的size本身就小于ImageView的size,则原图的size不作任何处理,居中显示在ImageView。
android:scaleType="matrix"
不改变原图的大小,从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理。
android:scaleType="fitCenter"
把原图按比例扩大或缩小到ImageView的ImageView的高度,居中显示
android:scaleType="fitEnd"
把原图按比例扩大(缩小)到ImageView的高度,显示起始于ImageView的右下方
android:scaleType="fitStart"
把原图按比例扩大(缩小)到ImageView的高度,显示起始于ImageView的左上方
android:scaleType="fitXY"
把原图按照View指定的大小在View中显示,拉伸显示图片,不保持原比例,填满ImageView.
【转】ImageView.ScaleType属性的更多相关文章
- 刘下记录:ImageView.scaleType 属性全解析(含视频)
0. 译序 原文:Working with the ImageView ImageView 有一个经常使用场景:ImageView 的宽度固定,高度等比例缩放.且 ImageView 在 paddin ...
- Android ImageView scaleType属性
scaleType属性 文章来源:http://blog.csdn.net/xilibi2003/article/details/6628668 使用ImageView时经常会用到scaleType属 ...
- android ImageView scaleType属性(转)
使用ImageView时经常会用到scaleType属性,如: 1 2 3 4 5 6 7 8 9 <ImageView android:layout_width="50dp&qu ...
- Android ImageView(scaleType属性)(转)
(转自:http://www.open-open.com/lib/view/open1378257991687.html) <ImageView android:id="@+id/im ...
- Android ImageView(scaleType属性)图片按比例缩放
<ImageView android:id="@+id/img" android:src="@drawable/logo" android:scaleTy ...
- 【Android】ImageView ScaleType属性值
ImageView.ScaleType / android:scaleType值的意义区别: CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的 ...
- Android中ImageView.ScaleType属性值
1 android:scaleType="center" (1)当图片大于ImageView的宽高:以图片的中心点和ImageView的中心点为基准,按照图片的原大小居中显示,不缩 ...
- android ImageView的属性android:scaleType,即ImageView.setScaleType(ImageView.ScaleType)
实例 <ImageView android:id="@+id/image" android:layout_width="fill_parent" andr ...
- ImageView的属性android:scaleType,即ImageView.setScaleType(ImageView.ScaleType)
1 imageView.setScaleType(ImageView.ScaleType.FIT_XY ); 1 这里我们重点理解ImageView的属性android:scaleType,即Imag ...
随机推荐
- SharePoint Framework 企业向导(九)
博客地址:http://blog.csdn.net/FoxDave 管理SPFx解决方案的容量 所有部署到租户的SPFx解决方案必须被租户管理员审批通过.这是通过上传SPFx包(.sppkg)到A ...
- 循环神经网络-RNN进阶
这部分许多内容要类比CNN来进行理解和解释,所以需要对CNN比较熟悉. RNN的特点 1. 权值共享 CNN权值共享,RNN也有权值共享,在入门篇可以看到RNN结构图中,权重使用的是同样的字母 为什么 ...
- 八、启动linux内核并修改开机logo
1. 编译并烧写linux内核 1)先准备好内核源码包urbetter-linux2.6.28-v1.0.tgz,输入命令:tar -zxvf urbetter-linux2.6.28-v1.0.tg ...
- python基础举例应用
将下述两个变量的值交换s1='alex's2='SB's1,s2=s2,s1print(s1,s2) 判断下述结果msg1='alex say my name is alex,my age is 73 ...
- 利用itext生成pdf的简单例子
一.itext简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文 ...
- 使用Intellij Idea创建简单Maven项目(转)
我是学Java Web的,基本靠自学,在网上收集了各种视频资料,逐一的看,代码逐一的敲.学习了这么久之前一直未成想过要把自己的学习路程记录下来,在网上也看到过很多人把自己的学习历程以及遇到的问题写在了 ...
- MySQL:日期函数、时间函数处理(转)
date_add() 增加MYSQL 获取当前时间加上一个月 ; date_sub()减少 date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day ...
- The group WHATEVER is formed today
Duang Duang!我们团队今天正式成立啦 团队名称:WHATEVER 团队成员如下: 个人介绍:天明宝,性别:女,爱好:偷懒 心有鸿鹄大志,却只有麻雀之行.一直在与自己做斗争,是个矛盾的综合体. ...
- python使用traceback获取详细的异常信息
原创来自:https://blog.csdn.net/mengtao0609/article/details/55049059 python使用traceback获取详细的异常信息 2017年02月1 ...
- Python之路,第十七篇:Python入门与基础17
python3 面向对象编程 面向对象编程 什么是对象? 一切皆对象: 面向对象是思想: 描述思想的语言有:C++/Java/Python/Swift/C# 两个概念: 类 class 对象 ob ...