图片显示

Android开发过程中ImageView的前景src和背景background是比较常用的属性,与之关联的常用属性有ScaleType和adjustBounds也是比较常用的属性,这篇文章我想主要说明的是ScaleType和adjustBounds
https://developer.android.com/reference/android/widget/ImageView.ScaleType.html
在介绍之前,我首先说明一个问题,ImageView的view大小和设置在其上面的图片的大小是无关联的。ScaleType是与图片大小相关的一个属性,与view的大小无关,属性的含义控制的是view.ondraw的图片的大小和位置
1,adjustBounds
是一个与view相关属性,设置View是否调整自己的边界来保持图片的长宽比,就是vIew的大小会变。但是在Android4.3之前这个属性只对图片的宽或高大于View的宽或高的时候有效
2,ScaleType:
1,CENTER:将图片中心设置在view的中心位置,不做任何的缩放,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
2,CENTER_CROP:将图片等比例缩放,使得宽和高都能等于或者大于View的宽和高(宽和高必须都等于或者大于view的宽高),然后裁剪
3,CENTER_INSIDE:将图片等比例缩放,使得图片的宽或高等于或者小于view的宽或高
4,FIT_CENTER:将图片按比例缩放到View的宽度,然后居中显示
5,FIT_END:将图片按比例缩放到View的宽度,然后右下显示(如果图片小于view宽高,则显示在view的右下方,不会拉伸)
6,FIT_START:将图片按比例缩放到View的宽度,然后居上显示(如果图片小于view宽高,则显示在view的左上方,不会拉伸)
7,FIT_XY:将图片填充整个view,将图片的宽和高都等于view的宽和高
8,MATRIX:Scale using the image matrix when drawing.默认的scaleType方式,使用matrix的方式显示图片

情况一、ImageView控件宽固定,图片的高需要自适应

首先要让图片的宽进行缩放,等于ImageView控件的宽;然后图片的高也进行同样的缩放,这样如果图片的高缩放之后大于ImageView控件的高,则图片的高会显示不全。

情况二、ImageView控件高固定,图片的宽需要自适应

首先要让图片的高进行缩放,等于ImageView控件的高;然后图片的宽也进行同样的缩放,这样如果图片的宽缩放之后大于ImageView控件的宽,则图片的宽会显示不全。

情况三、ImageView控件的宽高固定,

  • ImageView控件的宽高比小于等于图片的宽高比

为了让图片能够显示完整,这里可以按照情况一来进行缩放

  • ImageView控件的宽高比大于图片的宽高比

为了让图片能够显示完整,这里可以按照情况二来进行缩放

情况四、ImageView控件的宽和高都不规定,需要ImageView控件根据图片的宽度和高度来进行缩放自适应

首先我们需要根据实际情况来先确定ImageView控件的宽度或者高度,然后根据图片的宽高比来动态计算ImageView控件的另一个不确定的宽度或者高度

你可能感兴趣的:(Android技术)