Adroid 之 ImageView属性详解
ImageView属性详解:
注:测试图片比例为:156*135
属性1:
adnroid:scaleType ——>控制图片如何resized/moved来匹对 ImageView的size;
android:scaleType值的含义以及效果示意图:
* center 按图片本来的大小进行显示,当图片长/宽超过ImageView的固定长宽的时候则截取图片居中部分显示:
xml源码:
如图:1、长宽没有超过ImageView的时候:
2、长宽超过ImageView的时候:
* centercrop 按比例扩大图片的size居中显示,使得图片长宽等于或大于ImageView的长(宽:并不能同时的满足);
如图:
1、
* centerinside 将图片的内容完整居中显示,通过按比例缩小或原来的size使图片长宽等于或小于ImgeView的长(宽);
xml源码:
如图:
1、
* fitCenter 把图片按比例扩大/缩小到ImageView的宽度,居中显示:(和centerInside不同的是:fitCenter操作后只要一边满足要求即可;
即:操作后的(长/宽)size不可能大于View(长/宽))
* fitEnd 把图片按比例扩大/缩小到ImageView的宽度,显示在下方;
* fitStart 把图片按比例扩大/缩小到ImageView的宽度,显示在上方;
xml源码:
效果图:
1、
2、
3、
* fitXY 把图片 不按比例 扩大/缩小到View的大小显示; 即:完全的填满了组件
xml源码:
效果图:
1、
* matrix 用矩阵来绘制:(用途:用户可以对图片进行放大缩小的操作,具体代码java中实现)
效果图:
1、
属性2:android:adjustViewBounds -->是否保持宽高比,需要结合maxWidth、MaxHeight一起使用
否则单独使用没有效果;
属性3:android:maxHeight -->设置View的最大高度,单独使用无效,需要与setAdjustView
一起配合使用;例如如果想设置图片固定大小,又想保持图片宽高比,
设置如下:
* 设置setAdjustViewBounds为true;
* 设置maxWidth 、MaxHeight
* ImageView的宽度高度设为自定义;
测试图片参数:697*1024
测试实现:最大的高度不超过80dp;
xml源码:
效果示意图:
属性4:android:src -->设置View的图片资源位置;
属性5:android:tint -->将图片渲染成指定的颜色:
属性1:
adnroid:scaleType ——>控制图片如何resized/moved来匹对 ImageView的size;
android:scaleType值的含义以及效果示意图:
* center 按图片本来的大小进行显示,当图片长/宽超过ImageView的固定长宽的时候则截取图片居中部分显示:
xml源码:
- <ImageView
- android:src="@drawable/a"
- android:scaleType="centerInside"
- android:background="#7FFF00"
- android:layout_width="60dp"
- android:layout_height="90dp"
- />
如图:1、长宽没有超过ImageView的时候:
2、长宽超过ImageView的时候:
* centercrop 按比例扩大图片的size居中显示,使得图片长宽等于或大于ImageView的长(宽:并不能同时的满足);
- xml源码:
- <ImageView
- android:src="@drawable/a"
- android:scaleType="centerInside"
- android:background="#7FFF00"
- android:layout_width="200dp"
- android:layout_height="300dp"
- />
如图:
1、
* centerinside 将图片的内容完整居中显示,通过按比例缩小或原来的size使图片长宽等于或小于ImgeView的长(宽);
xml源码:
- <ImageView
- android:src="@drawable/a"
- android:scaleType="centerInside"
- android:background="#7FFF00"
- android:layout_width="60dp"
- android:layout_height="90dp"
- />
如图:
1、
* fitCenter 把图片按比例扩大/缩小到ImageView的宽度,居中显示:(和centerInside不同的是:fitCenter操作后只要一边满足要求即可;
即:操作后的(长/宽)size不可能大于View(长/宽))
* fitEnd 把图片按比例扩大/缩小到ImageView的宽度,显示在下方;
* fitStart 把图片按比例扩大/缩小到ImageView的宽度,显示在上方;
xml源码:
- android:scaleType="fitCenter"
- android:scaleType="fitStart"
- android:scaleType="fitEnd"
效果图:
1、
2、
3、
* fitXY 把图片 不按比例 扩大/缩小到View的大小显示; 即:完全的填满了组件
xml源码:
效果图:
1、
* matrix 用矩阵来绘制:(用途:用户可以对图片进行放大缩小的操作,具体代码java中实现)
效果图:
1、
属性2:android:adjustViewBounds -->是否保持宽高比,需要结合maxWidth、MaxHeight一起使用
否则单独使用没有效果;
属性3:android:maxHeight -->设置View的最大高度,单独使用无效,需要与setAdjustView
一起配合使用;例如如果想设置图片固定大小,又想保持图片宽高比,
设置如下:
* 设置setAdjustViewBounds为true;
* 设置maxWidth 、MaxHeight
* ImageView的宽度高度设为自定义;
测试图片参数:697*1024
测试实现:最大的高度不超过80dp;
xml源码:
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="#7FFF00"
- android:src="@drawable/c"
- android:adjustViewBounds="true"
- android:maxHeight="80dp"
- android:maxWidth="100dp"
- />
效果示意图:
属性4:android:src -->设置View的图片资源位置;
属性5:android:tint -->将图片渲染成指定的颜色:
路漫漫其修远兮 吾将上下而求索