详解android:scaleType属性
详解android:scaleType属性
:scaleType是控制图⽚如何resized/moved来匹对ImageView的size。
ImageView.ScaleType / android: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的⼤⼩显⽰
MATRIX / matrix ⽤矩阵来绘制,动态缩⼩放⼤图⽚来显⽰。
** 要注意⼀点,Drawable⽂件夹⾥⾯的图⽚命名是不能⼤写的
分别将adjustViewBonds设为true和false,与各种scaleType搭配,产⽣了不同效果。(上⾯的ImagView的adjstViewBonds值为false;下⾯的ImagView的adjstViewBonds值为true;两个ImagView⼤⼩相同)如下:
代码:
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="200dip"
android:adjustViewBounds="false"
android:scaleType="centerInside"//此处每次更改
android:src="@drawable/ic_3" />//此处两幅图间更改,⼀副图的⼤⼩较⼩,另⼀幅的较⼤。
<ImageView
android:id="@+id/imageView2"
android:layout_width="fill_parent"
resizedandroid:layout_height="200dip"
android:adjustViewBounds="true"
android:scaleType="centerInside"//此处每次更改
android:src="@drawable/ic_3" />//此处两幅图间更改,⼀副图的⼤⼩较⼩,另⼀幅的较⼤。
1、scaleType=“matrix”
如图pic1、pic2.
是保持原图⼤⼩、从左上⾓的点开始,以矩阵形式绘图。
pic1
pic2
2、scaleType=“fitXY”
如图pic3、pic4.
是将原图进⾏横⽅向(即XY⽅向)的拉伸后绘制的。
pic3
pic4
3、scaleType=“fitStart”
如图pic5、pic6。
是将原图沿左上⾓的点(即matrix⽅式绘图开始的点),按⽐例缩放原图绘制⽽成的。
pic5
pic6
4、scaleType=“fitCenter”
如图pic7、pic8。
是将原图沿上⽅居中的点(即matrix⽅式绘图第⼀⾏的居中的点),按⽐例缩放原图绘制⽽成的。
pic7
pic8
5、scaleType=“fitEnd”
如图pic9、pic10。、
是将原图沿下⽅居中的点(即matrix⽅式绘图最后⼀⾏的居中的点),按⽐例缩放原图绘制⽽成的。
pic9
pic10
6、scaleType=“Center”
如图pic11、pic12。
是保持原图⼤⼩,以原图的⼏何中⼼点和ImagView的⼏何中⼼点为基准,只绘制ImagView⼤⼩的图像。
pic11
pic12
7、scaleType=“centerCrop”
如图pic13、pic14。
不保持原图⼤⼩,以原图的⼏何中⼼点和ImagView的⼏何中⼼点为基准,只绘制ImagView⼤⼩的图像(以填满ImagView为⽬标,对原图进⾏裁剪)。
pic13
pic14
8、scaleType=“centerInside”
如图pic15、pic16.
不保持原图⼤⼩,以原图的⼏何中⼼点和ImagView的⼏何中⼼点为基准,只绘制ImagView⼤⼩的图像(以显⽰完整图⽚为⽬标,对原图进⾏缩放)。
pic15
pic16
(事实证明,adjustViewBonds单独设置⽆影响。)
scaletype的种类分为三类matrix(默认)、fit-X类、和center类。matrix就不多说。fit-X类中,
fitStart、fitCenter和fitEnd之间的都是根据需要使原图改变对ImgView进⾏适应,按matrix进⾏绘制,但它们
的区别在于基准不同。fitStart的基准为最上⾓的点(即matrix⽅式开始的点)fitCenter的基准点为中间的
点(matrix⽅式中可以使图⽚居中的点),⽽fitEnd的基准点为右下⾓的点(即matrix⽅式最后绘制点)。center类中,center、centerCrop、centerInside都是以原图的⼏何中⼼点和ImagView的⼏何中⼼点为基准,且只绘制ImagView⼤⼩的图像,不同的是是否保持原图⼤⼩和绘图的⽬标不同、采取的⼿段不同。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。