Android学习笔记:如何设置ImageView中图片的显示方式
我们在用ImageView显示图片时,很多情况下图片的大小与ImageView的尺寸不是完全一样的。这时就涉及到该如何设置显示图片了。
ImageView有个重要的属性是ScaleType,该属性用以表示显示图片的方式,共有很多种取值。另外也可以在xml文件中设置ImageView的android:scaleType属性达到调整效果。
这里我们介绍各种设置的含义:
1、ScaleType.CENTER(对应xml文件中为android:scaleType="center")
图片将位于View的中间显示,但不进行缩放,如果图片大小大于ImageView控件,则截取图片中间部分;若小于,则直接将图片居中显示。
2、ScaleType.FIT_CENTER(对应xml文件中为android:scaleType="fitCenter")
ImageView的默认状态,大图等比例缩小,使整幅图能够居中显示在ImageView中;小图等比例放大,同样要整体居中显示在ImageView中。
3、ScaleType.CENTER_CROP(对应xml文件中为android:scaleType="centerCrop")
让图像的短边与ImageView对应的边长度保持一致(可能是放大或缩小),然后按照短边放大或缩小的比例对图像的另外一边进行同比例放大或缩小。
注意:这不像FIT_CENTER会等比缩放。会导致图片缩放后长、宽比例与原来的不一致。
最后截取缩放后图片的中间部分显示。
这在有些场景下还是有用的,比如需要图片充满整个ImageView,但对缩放后失真或截取部分图片可以忍受。
4、ScaleType.FIT_XY(对应xml文件中为android:scaleType="fitXY")
将图片非等比例缩放到大小与ImageView相同。相比CENTER_CROP,这样既能保证图片充满整个ImageView. 又能保证长和宽的缩放相互不影响。
虽然也可能会导致比例缩放不一致,但最后不会导致图像被裁减。
5、ScaleType.CENTER_INSIDE(对应xml文件中为android:scaleType="centerInside")
将图片大小大于ImageView的图片进行等比例缩小,直到整幅图能够居中显示在ImageView中;小于ImageView的图片不变,直接居中显示,不放大。
对于尺寸大于ImageView的图片,效果等同FIT_CENTER,都是等比缩小。
6、还有其它几种情况,不太常用,这里简单说下
ScaleType.FIT_END:缩放方式同FIT_CENTER,只是将图片显示在右方或下方,而不是居中。
ScaleType.FIT_START:缩放方式同FIT_CENTER,只是将图片显示在左方或上方,而不是居中。
ScaleType.MATRIX:是根据一个3x3的矩阵对其中图片进行缩放
Android学习笔记:如何设置ImageView中图片的显示方式的更多相关文章
- Android学习笔记:如何高效显示图片,避免内存溢出 和 ImageView无法显示大尺寸的图片
因为手机的内存资源是有限的,每个app可使用的内存是受限的.而现在采用高分辨率拍的照片往往很大.如果加载时不注意方法,很有可能会引起java.lang.OutofMemoryError: bitmap ...
- Android学习笔记(第二篇)View中的五大布局
PS:人不要低估自己的实力,但是也不能高估自己的能力.凡事谦为本... 学习内容: 1.用户界面View中的五大布局... i.首先介绍一下view的概念 view是什么呢?我们已经知道一个Act ...
- Android学习笔记进阶20 之得到图片的缩略图
<1>简介 之前往往是通过Bitmap.Drawable和Canvas配合完成,需要写一系列繁杂的逻辑去缩小原有图片,从而得到缩略图. 现在我给大家介绍一种比较简单的方法:(网上有) 在A ...
- Android学习笔记进阶20之得到图片的缩略图
<1>简介 之前往往是通过Bitmap.Drawable和Canvas配合完成,需要写一系列繁杂的逻辑去缩小原有图片,从而得到缩略图. 现在我给大家介绍一种比较简单的方法:(网上有) 在A ...
- Android学习笔记进阶19 之给图片加边框
//设置颜色 public void setColour(int color){ co = color; } //设置边框宽度 public void setBorderWidth(int width ...
- Android学习笔记进阶19之给图片加边框
//设置颜色 public void setColour(int color){ co = color; } //设置边框宽度 public void setBorderWidth(int width ...
- Android学习笔记之mainfest文件中android属性
android:allowTaskReparenting 是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务. -------------------------------- ...
- Android学习笔记-绘制圆形ImageView实例
现在很多的APP都很喜欢圆形的头像,这里就简单的写个圆形的ImageView~ 第三方圆形ImageView控件: RoundedImageView CircleImageView 实现代码: 自定义 ...
- Android学习笔记进阶之在图片上涂鸦(能清屏)
Android学习笔记进阶之在图片上涂鸦(能清屏) 2013-11-19 10:52 117人阅读 评论(0) 收藏 举报 HandWritingActivity.java package xiaos ...
随机推荐
- 【行为型】Memento模式
备忘录模式顾名思义就是一种能有备忘作用的设计模式,其目的是在对象外部保存其在某一时刻的状态信息,并且在任何需要的时候,都可以通过备忘录中保存的状态数据恢复对象在当时情形下的状态. 备忘录模式旨在对象的 ...
- [Python笔记]第三篇:深浅拷贝、函数
本篇主要内容:深浅拷贝,自定义函数,三目运算,lambda表达式, 深浅拷贝 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import ...
- 查看memcached中最大生存时间
如果想看一下线上服务器上存储时间最久的key是多长时间,又没有memcached-tool工具可用的话,可以使用这个命令 stats items 执行结果如下: stats items :number ...
- PHP之路——MySql查询语句
1,select查询的基本结构 select 字段 from 表 where 过滤条件 group by 分组条件 having 过滤的第二条件 order by 排序条件 limit 限定结果条件; ...
- redis-cli批量删除时的坑
redis-cli keys "*"|xargs redis-cli del tips: keys后面的*号,必须要加双引号,不然删不掉 # redis-cli keys *|xa ...
- 【HDOJ】4983 Goffi and GCD
题意说的非常清楚,即求满足gcd(n-a, n)*gcd(n-b, n) = n^k的(a, b)的不同对数.显然gcd(n-a, n)<=n, gcd(n-b, n)<=n.因此当n不为 ...
- CentOS 7 ARM 版发布:支持树莓派2/香蕉派/CubieTruck
CentOS 7 ARM 版发布:支持树莓派2/香蕉派/CubieTruck 来自CentOS团队的Karanbir Singh很高兴地宣布,面向ARM硬件架构的CentOS 7 Linux已经正式发 ...
- BZOJ 1011 [HNOI2008]遥远的行星
1011: [HNOI2008]遥远的行星 Time Limit: 10 Sec Memory Limit: 162 MBSec Special JudgeSubmit: 2559 Solved ...
- COJ 1011 WZJ的数据结构(十一)树上k大
题解:主席树&DFS序. PS:为什么我一开始Wa了N发 是因为有一个左区间我写成[L,M+1]了.......................... #include<iostream ...
- ubuntu14.04 为Firefox安装flash插件
Ubuntu系统装好后,发现火狐浏览器播放不了视频,一直提示安装flash,但按照火狐浏览器上的提示Flash插件安装总是失败,那就只能手动安装了. (1) 去flash官网:http://get.a ...