一篇文章讲清楚android ImageView.ScaleType
2016-01-10
刚开始android编程的时候, 关于ImageView.ScaleType网络上好多, 说实话没看懂. 本文就是为了讲清楚这个, 有用的话转走, 请注明原地址和作者.
典型的代码调用如下
<ImageView
android:layout_width="300dp"
android:layout_height="400dp"
android:scaleType="center"
android:src="@drawable/numbers" >
</ImageView>
为了看起来方便, 下面所有的例子中ImageView(我把它叫做容器)的大小固定在300x400dp, 只调整图片的大小.
图片使用0-8数字格, 添加了10px的蓝色边框. 这样如果图片经过了变形裁剪等, 都很容易看出来.
ScaleType主要有如下几种取值:
1. CENTER 把图片放在容器的中间, 但是不会调节图片尺寸, 原图多大就显示多大.
图片100x100 图片300x300 图片400x400
2. CENTER_CROP 等比例放大或者缩小图片, 目的是调整后图片的一条边正好等于容器的边, 另一条边要大于等于容器的边. 看起来就是一定要把图片拉伸出去.
不管图片是100x100, 还是900x900, 都是左边的效果, 都会把一条边(这里是水平边)调整成和容器一样大, 垂直边调整成超出容器.
3. CENTER_INSIDE 等比例放大或者缩小图片, 目的是调整后图片的两条边都要小于等于容器的边. 看起来就是一定要把图片压缩进去.
图片小 图片大
4. FIT_CENTER 等比例放大或者压缩图片, 目的是调整后图片的一条边正好等于容器的边, 另一条边要小于等于容器的边. 而且图片要放在容器中心.
不管100x100, 还是900x900, 图片都会把严丝合缝的放进去.
5. FIT_END 同FIT_CENTER, 只是图片放在容器的右下方
6. FIT_START 同FIT_CENTER, 只是图片放在容器的左上方
7. FIT_XY 不管大图小图, 简单粗暴的把X和Y拉成和容器一样大小.
总结一下,
1. 最常用的就是FIT_CENTER, FIT_START, FIT_END, 因为1.它保证了图片的长宽比, 显示出来的和原图协调; 2. 它至少使一条边贴近容器, 充分考虑了容器的大小.
2. 其次常用的是FIT_XY, 优点是确保容器被填满, 缺点是图片失真.
3. CENTER_CROP会导致图片被裁剪;CENTER_INSIDE不适用于小图, 会导致图片看起来很小, 容器很大, 不成比例, 完全可以用FIT_CENTER代替.
4. 最不常用的是CENTER, 完全不调整图片尺寸, 对容器大小的限制太死, 在android多分辨率的设备上无法使用.
一篇文章讲清楚android ImageView.ScaleType的更多相关文章
- 还分不清 Cookie、Session、Token、JWT?一篇文章讲清楚
还分不清 Cookie.Session.Token.JWT?一篇文章讲清楚 转载来源 公众号:前端加加 作者:秋天不落叶 什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证 ...
- Android ImageView(scaleType属性)(转)
(转自:http://www.open-open.com/lib/view/open1378257991687.html) <ImageView android:id="@+id/im ...
- [Android] ImageView.ScaleType设置图解 【转载】
ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等. 设置的方式包括: 1. 在layout xml中定义android:s ...
- [Android] ImageView.ScaleType设置图解
ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等. 设置的方式包括: 1. 在layout xml中定义android ...
- Android ImageView(scaleType属性)图片按比例缩放
<ImageView android:id="@+id/img" android:src="@drawable/logo" android:scaleTy ...
- 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 ...
- 一篇文章讲清楚MySQL的聚簇/联合/覆盖索引、回表、索引下推
迎面走来了你的面试官,身穿格子衫,挺着啤酒肚,发际线严重后移的中年男子. 手拿泡着枸杞的保温杯,胳膊夹着MacBook,MacBook上还贴着公司标语:"加班使我快乐". 面试官: ...
- Android:学习AIDL,这一篇文章就够了(下)
前言 上一篇博文介绍了关于AIDL是什么,为什么我们需要AIDL,AIDL的语法以及如何使用AIDL等方面的知识,这一篇博文将顺着上一篇的思路往下走,接着介绍关于AIDL的一些更加深入的知识.强烈建议 ...
随机推荐
- 学习MVC框架之一
一.MVC的概述 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显示分离的 ...
- VS2015试验随手记
1.第一次安装时,未完整安装,没有安装MFC,导致可以创建MFC工程,但是不能编译 解决办法,修改安装,加入MFC 2.学习创建windows runtime component,第一次使用,可以得到 ...
- JVM调优基础
一.JVM调优基本流程 1.划分应用程序的系统需求优先级 2.选择JVM部署模式:单JVM.多JVM 3.选择JVM运行模式 4.调优应用程序内存使用 5.调优应用程序延迟 6.调优应用程序吞吐量 二 ...
- mysql 5.7 内存使用监控
5.7 中的performance_schema 已经有能力监控mysql 的内存使用情况了,对于这一点也是要通过instrument 来实现的,由于内存这一块没有对应的consumer 所以只要 配 ...
- SpringMVC–SSH -- RESTful -- JSR303
最近在使用SpringMVC+MyBatis感觉用起来效果很好.我不太明白SpringMVC和SSH的关系,遂搜索了一下.原来使用SpringMVC之后,可以替代之前的SSH这种开发模式. 附上知乎链 ...
- BZOJ 2324 营救皮卡丘
http://www.lydsy.com/JudgeOnline/problem.php?id=2324 思路:最小费用最大流 考虑设数组d[k][i][j],代表只用前k个城市,i到j的最短路 然后 ...
- LeetCode_Palindrome Partitioning II
Given a string s, partition s such that every substring of the partition is a palindrome. Return the ...
- LeetCode_Convert Sorted List to Binary Search Tree
Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...
- vs 自动生成core dump文件
一直以来觉着core dump这个东西很神奇,在初步学习的时候也没有个大方向,最近项目需要记录程序崩溃时的日志信息,因此在网上寻找相关的信息,此时core dump也成为了我重点关注的东西. 说说我的 ...
- Qt工具知多少
一级题目: Qt Designer — 所见即所得的界面设计工具, 可以用拖拽的方式将控件排布在界面上,支持layout, 支持signal/slot编辑. 生成的文件保存为ui格式, ui是xml格 ...