android】scaleType属性与ImagView中图片的显示的关系
2012-08-06 17:05
423 查看
关于android中ImageView的外观,即图片在其内显示出的样子,与布局文件中adjustViewBonds和scaleType
属性的关系。我进行了一些探索。现跟大家共享,欢迎各位指教。分别将adjustViewBonds设为true和false,与各种scaleType搭配,产生了不同效果。(上面的ImagView的adjstViewBonds值为false;下面的ImagView的adjstViewBonds值为true;两个ImagView大小相同)如下:
代码:
Xml代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/128b2a3a9509b0b815e163825683b669.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/d8d5d697b5fa599085c25d6140645bbb.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/9af44f251795f376a26a00a2a2d6c778.gif)
<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"
android:layout_height="200dip"
android:adjustViewBounds="true"
android:scaleType="centerInside"//此处每次更改
android:src="@drawable/ic_3"
/>//此处两幅图间更改,一副图的大小较小,另一幅的较大。
原图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/af621f4088fc5b63d42ca21535e90270.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/24b79e325ebfdd1eb7d204fdae723be2.jpg)
1、scaleType=“matrix”
如图pic1、pic2.
是保持原图大小、从左上角的点开始,以矩阵形式绘图。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/732945a6be3fb40d3bc993a5a7ae4452.png)
pic1
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/b7b3d5eb50987348567165aa4e0b8847.png)
pic2
2、scaleType=“fitXY”
如图pic3、pic4.
是将原图进行横方向(即XY方向)的拉伸后绘制的。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/77ae9bb8fd646e81b745ee804e5fce4f.png)
pic3
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/8e6180edf6a1d16375a4afaf9e1a6af2.png)
pic4
3、scaleType=“fitStart”
如图pic5、pic6。
是将原图沿左上角的点(即matrix方式绘图开始的点),按比例缩放原图绘制而成的。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/f583c0e66ce7efd9e277929c535b330b.png)
pic5
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/f70eafecc7bd7fd9cd0d9a8968405025.png)
pic6
4、scaleType=“fitCenter”
如图pic7、pic8。
是将原图沿上方居中的点(即matrix方式绘图第一行的居中的点),按比例缩放原图绘制而成的。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/4243862483e3270e29dff90f17690c86.png)
pic7
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/6e052bf2bd03cb5b9f17da89f2c7c57b.jpg)
pic8
5、scaleType=“fitEnd”
如图pic9、pic10。、
是将原图沿下方居中的点(即matrix方式绘图最后一行的居中的点),按比例缩放原图绘制而成的。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/96005ba6bf93a19183bdd09e51062621.png)
pic9
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/05ea4e6c01e54120f8bc4a15548dd152.png)
pic10
6、scaleType=“Center”
如图pic11、pic12。
是保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/a2d84f5b37ea01abac74e80320b3531e.png)
pic11
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/26340e8ebe74fd8e83ca77aacf2b75f2.png)
pic12
7、scaleType=“centerCrop”
如图pic13、pic14。
不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以填满
ImagView为目标,对原图进行裁剪)。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/ef857d26a103772216be6a707f43172f.png)
pic13
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/1abfa5f9759d8561ce50473e0cda9564.png)
pic14
8、scaleType=“centerInside”
如图pic15、pic16.
不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以显示
完整图片为目标,对原图进行缩放)。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/efc128f6c606653239eb80f3a0d8ec52.png)
pic15
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/70bb3aebe57259a903d034896ad1b478.png)
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大小的图像,不同的是是否保持原图大小和绘图的目标不同、采取的手段不同。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/8845a4db8a1e230ef241048d24ca5f1c.gif)
大小: 30.5 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/be9f149069be75a98df8e97de23b93e1.jpg)
大小: 38.1 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/432708ce11bac45dafc2f518f983e953.png)
大小: 38.4 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/448fa52666aad981443dd75a059b9cb6.png)
大小: 125.2 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/06fcc114c28a755a3f1e0b3adc0f6113.png)
大小: 119.1 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/fe4b8706d946fdb414b34c9022770c2e.png)
大小: 132.7 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/18a352f8bd255daeb30ece08ced6a2b6.png)
大小: 73 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/97b03677a38b641f4c41173b034eb71f.png)
大小: 82.8 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/cf4fa65ef735c7e7b308eee9921f8c74.png)
大小: 75 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/de5a80b20aae07485aacb5f52d24c4bb.jpg)
大小: 46.6 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/4a1033d966774062c0de9029e01bd2fd.png)
大小: 74.2 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/6de432d8c6c39d9280227f2b7c2b6b04.png)
大小: 84.5 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/db0bf4e67520cd04830d19785c146d1b.png)
大小: 40.8 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/25befe1f80f1dca6073bdbb940eb6f7c.png)
大小: 135.5 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/8f48dc238324f9cd72c881d067906578.png)
大小: 132.5 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/42cfdb35425fa159eabb3c2b50afb114.png)
大小: 122.6 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/462cbf7640fceb85be554d6b25f54a81.png)
大小: 39.4 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/d12d0ad2b33b93e229256ad229bd8073.png)
大小: 88.7 KB
属性的关系。我进行了一些探索。现跟大家共享,欢迎各位指教。分别将adjustViewBonds设为true和false,与各种scaleType搭配,产生了不同效果。(上面的ImagView的adjstViewBonds值为false;下面的ImagView的adjstViewBonds值为true;两个ImagView大小相同)如下:
代码:
Xml代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/128b2a3a9509b0b815e163825683b669.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/d8d5d697b5fa599085c25d6140645bbb.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/9af44f251795f376a26a00a2a2d6c778.gif)
<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"
android:layout_height="200dip"
android:adjustViewBounds="true"
android:scaleType="centerInside"//此处每次更改
android:src="@drawable/ic_3"
/>//此处两幅图间更改,一副图的大小较小,另一幅的较大。
<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" android:layout_height="200dip" android:adjustViewBounds="true" android:scaleType="centerInside"//此处每次更改 android:src="@drawable/ic_3" />//此处两幅图间更改,一副图的大小较小,另一幅的较大。
原图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/af621f4088fc5b63d42ca21535e90270.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/24b79e325ebfdd1eb7d204fdae723be2.jpg)
1、scaleType=“matrix”
如图pic1、pic2.
是保持原图大小、从左上角的点开始,以矩阵形式绘图。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/732945a6be3fb40d3bc993a5a7ae4452.png)
pic1
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/b7b3d5eb50987348567165aa4e0b8847.png)
pic2
2、scaleType=“fitXY”
如图pic3、pic4.
是将原图进行横方向(即XY方向)的拉伸后绘制的。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/77ae9bb8fd646e81b745ee804e5fce4f.png)
pic3
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/8e6180edf6a1d16375a4afaf9e1a6af2.png)
pic4
3、scaleType=“fitStart”
如图pic5、pic6。
是将原图沿左上角的点(即matrix方式绘图开始的点),按比例缩放原图绘制而成的。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/f583c0e66ce7efd9e277929c535b330b.png)
pic5
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/f70eafecc7bd7fd9cd0d9a8968405025.png)
pic6
4、scaleType=“fitCenter”
如图pic7、pic8。
是将原图沿上方居中的点(即matrix方式绘图第一行的居中的点),按比例缩放原图绘制而成的。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/4243862483e3270e29dff90f17690c86.png)
pic7
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/6e052bf2bd03cb5b9f17da89f2c7c57b.jpg)
pic8
5、scaleType=“fitEnd”
如图pic9、pic10。、
是将原图沿下方居中的点(即matrix方式绘图最后一行的居中的点),按比例缩放原图绘制而成的。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/96005ba6bf93a19183bdd09e51062621.png)
pic9
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/05ea4e6c01e54120f8bc4a15548dd152.png)
pic10
6、scaleType=“Center”
如图pic11、pic12。
是保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/a2d84f5b37ea01abac74e80320b3531e.png)
pic11
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/26340e8ebe74fd8e83ca77aacf2b75f2.png)
pic12
7、scaleType=“centerCrop”
如图pic13、pic14。
不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以填满
ImagView为目标,对原图进行裁剪)。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/ef857d26a103772216be6a707f43172f.png)
pic13
![](https://oscdn.geek-share.com/Uploads/Images/Content/201612/1abfa5f9759d8561ce50473e0cda9564.png)
pic14
8、scaleType=“centerInside”
如图pic15、pic16.
不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以显示
完整图片为目标,对原图进行缩放)。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/efc128f6c606653239eb80f3a0d8ec52.png)
pic15
![](https://oscdn.geek-share.com/Uploads/Images/Content/201312/70bb3aebe57259a903d034896ad1b478.png)
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大小的图像,不同的是是否保持原图大小和绘图的目标不同、采取的手段不同。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/8845a4db8a1e230ef241048d24ca5f1c.gif)
大小: 30.5 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/be9f149069be75a98df8e97de23b93e1.jpg)
大小: 38.1 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/432708ce11bac45dafc2f518f983e953.png)
大小: 38.4 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/448fa52666aad981443dd75a059b9cb6.png)
大小: 125.2 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/06fcc114c28a755a3f1e0b3adc0f6113.png)
大小: 119.1 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/fe4b8706d946fdb414b34c9022770c2e.png)
大小: 132.7 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/18a352f8bd255daeb30ece08ced6a2b6.png)
大小: 73 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/97b03677a38b641f4c41173b034eb71f.png)
大小: 82.8 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/cf4fa65ef735c7e7b308eee9921f8c74.png)
大小: 75 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/de5a80b20aae07485aacb5f52d24c4bb.jpg)
大小: 46.6 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/4a1033d966774062c0de9029e01bd2fd.png)
大小: 74.2 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/6de432d8c6c39d9280227f2b7c2b6b04.png)
大小: 84.5 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/db0bf4e67520cd04830d19785c146d1b.png)
大小: 40.8 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/25befe1f80f1dca6073bdbb940eb6f7c.png)
大小: 135.5 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/8f48dc238324f9cd72c881d067906578.png)
大小: 132.5 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/42cfdb35425fa159eabb3c2b50afb114.png)
大小: 122.6 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/462cbf7640fceb85be554d6b25f54a81.png)
大小: 39.4 KB
![](https://oscdn.geek-share.com/Uploads/Images/Content/201208/d12d0ad2b33b93e229256ad229bd8073.png)
大小: 88.7 KB
相关文章推荐
- 【android布局】scaleType属性与ImagView中图片的显示的关系
- 【android】scaleType属性与ImagView中图片的显示的关系
- 【android】scaleType属性与ImagView中图片的显示的关系
- Android scaleType属性与ImagView中图片的显示的关系
- Android scaleType属性与ImagView中图片的显示的关系
- 【android】scaleType属性与ImagView中图片的显示的关系(转)
- 【android】scaleType属性与ImagView中图片的显示的关系
- 【android】scaleType属性与ImagView中图片的显示的关系
- 【android】scaleType属性与ImagView中图片的显示的关系
- 【android】scaleType属性与ImagView中图片的显示的关系 颜色
- 【android】scaleType属性与ImagView中图片的显示的关系
- 【android】scaleType属性与ImagView中图片的显示的关系
- 【android】scaleType属性与ImagView中图片的显示的关系
- scaleType属性与ImagView中图片的显示的关系
- scaleType属性与ImagView中图片的显示的关系
- scaleType属性与ImagView中图片的显示的关系
- android scaleType属性与ImagView中图片的显示的关系
- 【android学习笔记】scaleType属性与ImagView中图片的显示的关系
- Android中imageView中的属性ScaleType用来显示图片的几种方式
- 图片自适应imageview属性android:scaleType