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 ...
随机推荐
- kill tomcat process in window
1.通过命令netstat -ano | findstr 8080找到tomcat所占用的process,如下图 2.执行ntsd -c q -p 7944 kill刚刚找到的process,然后 ...
- php中抽象类和接口的特点、区别和选择
一.特点: 1.抽象类特点 (1) 用 abstract 来修饰一个类,那么这个类就是抽象类:抽象类绝对不能被实例化,即$abc = new 抽象类名();会报错. (2) 用abstract 来修饰 ...
- C语言笔记(数组地址一些细节)
一.数组的a+1和&a+1的区别 先看看测试代码: ]={}; printf(" sizeof(data) = %d.\n", sizeof(data)); printf ...
- 实验一:C语言实现DES加解密算法
计算程序执行10万次需要的时间: 总共需要175秒 加解密一次的时间小于:0.00175秒 纯计算加解密的时间会更短 去除IO操作后的时间 也就是说加解密一次的时间为0.07毫秒 /*-------- ...
- An unspecified error occurred!
在我们生成证书的时候,有时候会遇到这个问题,明明刚从电脑的钥匙串申请的证书,却报错!遇到这个不用急.多试几次.不是你的生成的证书不管用,多半原因是因为你的网速太挫了!
- 作了点有意义 的事,加入CLOUDSTACK官方文档的中文翻译工作
https://www.transifex.com/ 昨天到今天,作了个部署构架方面的翻译.
- h.264参考图像列表、解码图像缓存
1.参考图像列表(reference picture list) 一般来说,h.264会把需要编码的图像分为三种类型:I.P.B,其中的B.P类型的图像由于采用了帧间编码的这种编码方式,而帧间编码又是 ...
- vim插件
所需即所获:像 IDE 一样使用 vim https://github.com/yangyangwithgnu/use_vim_as_ide mark.vim http://www.vim.org/s ...
- TF31003错误的解决办法
TF31003错误的解决办法 在今天上午机器重新启动后,VS2012突然无法连接TFS2010了.在机器重新启动之前还使用正常.刚开始以为TFS出现了问题,不过其他小组同事使用却正常,问题应该在我 ...
- Windows 不能在 本地计算机 启动 SQL Server 服务 错误代码126
本文转自:http://www.cnblogs.com/yuerdongni/archive/2012/08/18/2645140.html 在使用SQL2005(或2008)是可能会遇到错误提示: ...