androidscaletype
㈠ Android中ImnageView 中如何让图片拉伸显示
通过设置android:scaleType="fitXY"使得图片拉伸显示。
补充:
scaleType的属性有matrix(默认)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY。
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中显示,拉伸显示图片,不保持原比例,填满ImageView.
㈡ android中imageview里的图片大小是否可以比imageview本身大,如果可以,如何设置
ImageView可以放大缩小,也可以通过Scaletype这个属性来指定。
Scaletype的设置的方式包括:
1. 在layout xml中定义android:scaleType="CENTER"
2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);
Scaletype的取值和区别:
1. SetScaleType(ImageView.ScaleType.CENTER);
按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
2. SetScaleType(ImageView.ScaleType.CENTER_CROP);
按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
3. setScaleType(ImageView.ScaleType.CENTER_INSIDE);
将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
4. setScaleType(ImageView.ScaleType.FIT_CENTER);
把图片按比例扩大/缩小到View的宽度,居中显示
5. FIT_START, FIT_END在图片缩放效果上与FIT_CENTER一样,只是显示的位置不同,FIT_START是置于顶部,FIT_CENTER居中,FIT_END置于底部。
在此就不给出示例了。
6. FIT_XY
不按比例缩放图片,目标是把图片塞满整个View。
㈢ 图文讲解Android ImageView的ScaleType,帮你彻底搞明白
一般来说,要把一张图片显示在ImageView上,有下面几个问题需要考虑:
在真实的产品环境中,一个ImageView的大小往往都是有限制的,至少长或宽有一条边是有限制的,所以,在ImageView上显示图片还需要考虑:
第二个问题,还可以细化成:
怎么样,简单的一个显示图片操作,就有这么多细节需要考虑。下面的章节,我们就抓住上面几点,通过实际的例子帮你理解ScaleType的各个属性值。
首先看下实际效果:
一句话总结FIT_XY:就是以不按原比例伸缩为代价,强制让图片充满ImageView ,同时图片所有的部分也会完整显示出来(虽然可能变形)。但是,因为其不按原比例伸缩的特点,真实的产品中不太常用,因为图片被拉伸变形往往是不可以接受的。(上面例子中的美女已经被拉伸的不成样子了)
还是先看下例子:
这个属性值的名称虽然是CENTER,但是和一般意义上的“居中”有很大不同。 这个属性值即不会保证填满ImageView,也不保证图片会完整显示。 当实际图片比ImageView小的时候,就是“居中显示”。当图片比ImageView大,就把图片中间的部分显示在ImageView里,其他的裁剪掉不显示。(上面第二组图尤其明显)
先看例子:
FIT_CENTER更接近于大家理解的“居中显示”,也是平时用的最多的一个值。 首先,这个属性会保证图片完整显示,不管图片和ImageView的大小关系。而且伸缩的时候是按照比例做的,所以图片质量也可以得到保证。 唯一的问题是,FIT_CENTER不保证会填满ImageView。对于大多数场景,这个也足够了。
FIT_START,FIT_END和FIT_CENTER差不多,就不详细介绍了。
先看例子:
CENTER_CROP,是个非常重要的值,但是很多同学对它并不是很了解。首先,这个属性值的名字很奇怪,很难猜出来其真实的含义;其次,它的官方介绍简直又臭又长,让人一头雾水:
其实,CENTER_CROP的特点总结起来很简单: 以可能裁切掉部分图片为代价,让图片充满ImageView。
可以和FIT_XY做下对比, CENTER_CROP和FIT_XY是唯二的可以保证填满ImageView的值 。所不同的是,FIT_XY是以不保持原始比例伸缩为代价(但是保证原图全部显示出来);而CENTER_CROP是以不能显示完整原图为代价(但是保证原图的原始比例)。
二者都会按原始比例伸缩图片,所不同的是, CENTER_CROP将图片伸缩到填满ImageView为止,FIT_CENTER伸缩到图片完整并居中显示为止。
下面两个动图可以让你看得更清楚:
先看例子:
CENTER_INSIDE又是一个奇怪的值,原文的解释也是让人看不懂:
其实总结起来很简单: 当原图大于ImageView的时候,相当于FIT_CENTER。当原图小于等于ImageView的时候,相当于CENTER。
看下例子
MATRIX的效果比较简单: 不改变原图的大小,从ImageView的左上角开始绘制,超出部分做剪切处理。 不保证填满ImageView,也不保证图片完全显示。和CENTER有点类似。反正我在项目中是没有用过这个值。
下面的表格总结了下各个属性值的特点,注意,表格中为“是”并不是说一定会发生,只是说明有这种可能。
最后再给大家出一道思考题,看看大家的掌握情况:
相信通过学习本文章,聪明的你很快就能找到答案。
㈣ android 代码中设置控件的垂直居中和两个控件之间的距离。
首先是垂直居中,下面有朋友已经回答了,而控件和控件之间的距离设置是设置margin
㈤ android 系统中如何原比例的显示图片
这里面的参数你都试一下,应该有一个可以。x0dx0aImageView的ScaleType属性x0dx0aImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType)属性如下:CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截 取图片的居中部分显示x0dx0aCENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽)x0dx0aCENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小 或原来的size使得图片长/宽等于或小于View的长/宽x0dx0aFIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示x0dx0aFIT_END / fitEnd 把 图片按比例扩大/缩小到View的宽度,显示在View的下部分位置x0dx0aFIT_START / fitStart 把 图片按比例扩大/缩小到View的宽度,显示在View的上部分位置x0dx0aFIT_XY / fitXY 把图片 不按比例 扩大/缩小到View的大小显示
㈥ android 系统中如何原比例的显示图片
这里面的参数你都试一下,应该有一个可以。
ImageView的ScaleType属性
ImageView的属性android:scaleType,即 ImageView.setScaleType(ImageView.ScaleType)属性如下:CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截 取图片的居中部分显示
CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽)
CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小 或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END / fitEnd 把 图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START / fitStart 把 图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY / fitXY 把图片 不按比例 扩大/缩小到View的大小显示