老王讲IT——第四章
Android基础开发——ImageView
一、了解imageview主要属性和缩放类型
咱们都在各类型的网站,视频上边见过很多的图片,有各种形式,进度条之类的。那么我们就可以通过本章内容来进行实现;
主要属性:
1、andriod:src 设置图片资源
2、android:scaleType 设置图片缩放类型
3、android:maxHeight 最大高度
4、android:maxWidth 最大宽度
5、android:adjustViewBounds 调整View的界限
同上第二条缩放类型:
1、fitstart 保持宽高比缩放图片,直到较长的边与Image的边长相等缩放完成后将图片放在ImageView的左上角
2、fitCenter 默认值,同上,缩放后放于中间
3、ftEnd 同上,缩放后放于右下角
4、fitXY对图像的横纵方向进行独立缩放,使得该图片完全适应ImageView,但是图片的宽高比可能会发生改变
5、center 保持原图的大小,显示在lmageView的中心。当原图的size大于lmageView的size,超过部分裁剪处理
6、centerCrop 保持宽高比缩放图片,直到完全覆盖ImageView,可能会出现图片的显示不完全
7、centerlnside 保持宽高比缩放图片,直到ImageView能够完全地显示图片
8.matrix 不改变原图的大小,从imageView的左上角开始绘制原图,原图超过lmageView的部分作裁剪处理
二、开始实战:
-
新建项目MyImageView
-
在自己的桌面上保存两张图片(一大一小)复制到drawble
3.在新建的项目里写xml文件
4.把drawble里面的图片引用进来,用src属性
会自己进行等比缩放,能够放入到我们这个框里面
5.对于缩放还有其他的设置,scaleType:设置图片的缩放,咱们这里可以给留白进行一个填充。你在不是有留白吗?那么我不希望它留白该怎么办
5.1.FitXY:对图片进行了拉伸,图但是片变模糊了,(想象在气球上画个笑脸,拉伸会变形)
5.2.Center:保持原图的大小,显示在ImageView的中心
5.3.当原图的大小大于边框的大小,会把超出的部分剪裁。CenterCrop:高进行填充,宽超出的部分进行剪裁。显示的其实就是正方形,用来填充我们的imageview,就是宽高等比的一个填充,超出的部分直接裁剪掉了。
5.4.centerInside:好像也是一个等比的长宽,然后放到了我们的中间,可能这个时候有的同学会觉得这个centerinside和我们的fitcenter 好像没区别,那么这两个到底有什么区别呢,那么我们现在就把图片改成小的那一张,来看一看,这个时候我们的fidcenter显示是没有变化的,还是进行了一个等比缩放。那么我们在把他改成centerinside来看一看,发现区别了吧?centerinside是原图的大小不改变进行存放,最主要的目的就是显示在这个里边,而至于是大小就不是它所考虑得了。
(1)如果你的图片小于边框,那么我就给它原图尺寸显示,
(2)如果你的图片大于边框,那么我就给它进行等比缩放,放中间。
6.Matrix:不会进行拉伸,从左上角开始绘制图片。如果图片大我就只绘制左上角,如果图片小那我就全部绘制。这就是缩放的几个类型。
为什么要有最大宽度和最大高度的设置呢?因为咱们的图片往往和咱们的ImageView的宽高不相等,这个时候又不想进行拉伸。
那么接下来我们来看剩下的三个属性。高,宽,界限
那么我们为什么要用maxwidth和maxheight呢,我们把缩放先去掉。
因为我们imageview很难有这种情况刚好和图片的长宽一样,对不对?
而咱们又不进行图片的变形,除非咱们作图的和这个刚好相同。
所以说我们怎么处理呢?就可以使用maxwidth和maxheight去处理。
7.MaxWidth:可以设置你图片的宽度
8.Maxheight:设置图片的高度
9.需要和adjustViewBounds:配合使用
例题:使用自己相册里一大一小的图片熟练使用这些属性;所有缩放类型都得使用;