ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。

ML属性

属性名称

描述

android:adjustViewBounds

是否保持宽高比。需要与maxWidthMaxHeight一起使用,否则单独使用没有效果。

android:cropToPadding

是否截取指定区域用空白代替。单独设置无效果,需要与scrollY一起使用,效果如下,实现代码见代码部分:

android:maxHeight

设置View的最大高度,单独使用无效,需要与setAdjustViewBounds一起使用。如果想设置图片固定大小,又想保持图片宽高比,需要如下设置:

1 设置setAdjustViewBoundstrue

2 设置maxWidthMaxHeight

3 设置设置layout_widthlayout_heightwrap_content

android:maxWidth

设置View的最大宽度。同上。

android:scaleType

设置图片的填充方式。

matrix

0

用矩阵来绘图

 

fitXY

1

拉伸图片(不按比例)以填充View的宽高

layout_height:30px


layout_width:120px

fitStart

2

按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的左边

fitCenter

3

按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的中间

fitEnd

4

按比例拉伸图片,拉伸后图片的高度为View的高度,且显示在View的右边

center

5

按原图大小显示图片,但图片宽高大于View的宽高时,截图图片中间部分显示

 

layout_height:60px


layout_width:80px


padding:10px

 

centerCrop

6

按比例放大原图直至等于某边View的宽高显示。

centerInside

7

当原图宽高或等于View的宽高时,按原图大小居中显示;反之将原图缩放至View的宽高居中显示。

android:src

设置Viewdrawable(如图片,也可以是颜色,但是需要指定View的大小)

android:tint

将图片渲染成指定的颜色。见下图:

左边为原图,右边为设置后的效果,见后面代码。



android中ImageView的ScaleType属性

  ScaleType的值分别代表的意义: ImageView是Android中的基础图片显示控件,该控件有个重要的属性是ScaleType,该属性用以表示显示图片的方式,共有8种取值

  ScaleType.CENTER::图片大小为原始大小,如果图片大小大于ImageView控件,则截取图片中间部分,若小于,则直接将图片居中显示。

  ScaleType.CENTER_CROP:将图片等比例缩放,让图像的短边与ImageView的边长度相同,即不能留有空白,缩放后截取中间部分进行显示。

  ScaleType.CENTER_INSIDE:将图片大小大于ImageView的图片进行等比例缩小,直到整幅图能够居中显示在ImageView中,小于ImageView的图片不变,直接居中显示。

  ScaleType.FIT_CENTER:ImageView的默认状态,大图等比例缩小,使整幅图能够居中显示在ImageView中,小图等比例放大,同样要整体居中显示在ImageView中。

  ScaleType.FIT_END:缩放方式同FIT_CENTER,只是将图片显示在右方或下方,而不是居中。

  ScaleType.FIT_START:缩放方式同FIT_CENTER,只是将图片显示在左方或上方,而不是居中。

  ScaleType.FIT_XY:将图片非等比例缩放到大小与ImageView相同。

  ScaleType.MATRIX:是根据一个3x3的矩阵对其中图片进行缩放


设置的方式包括:

1. 在layout xml中定义android:scaleType="CENTER"

2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);

接下来,将对ScaleType的值和对应的显示效果用最直观的方式——真图演示的方法,来进行说明。


首先,是测试使用的原始图片:

(Dimensions: 128 * 128)

(Dimensions: 640 * 428)


好,开始下面的测试:

1. SetScaleType(ImageView.ScaleType.CENTER);

    按图片的原来尺寸大小居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示

              


2. SetScaleType(ImageView.ScaleType.CENTER_CROP);

    按比例扩大图片的尺寸居中显示,使得图片长(宽)等于或大于View的长(宽)

               


3. setScaleType(ImageView.ScaleType.CENTER_INSIDE);

    将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽

              


4. setScaleType(ImageView.ScaleType.FIT_CENTER);

    把图片按比例扩大/缩小到View的宽度,居中显示

              


5. FIT_START, FIT_END在图片缩放效果上与FIT_CENTER一样,只是显示的位置不同,FIT_START是置于顶部,FIT_CENTER居中,FIT_END置于底部。

    在此就不给出示例了。


6. FIT_XY

    不按比例缩放图片,目标是把图片塞满整个View。

              

更多相关文章

  1. android View的getHeight和getMeasuredHeight的区别
  2. Android(安卓)SQlite数据库的使用(一)-一学就会android数据库
  3. 关于在Android(安卓)Studio中使用Assets目录下的资源的问题
  4. Android极致优化
  5. Android(安卓)远程图片获取和本地缓存
  6. Android基础入门教程——7.5.1 WebView(网页视图)基本用法
  7. android的XML连续动画
  8. Android中使用SVG矢量图打造多边形图形框架
  9. React Native 清空Android图片缓存

随机推荐

  1. INSTALL_FAILED_INSUFFICIENT_STORAGE 这
  2. Android ico
  3. android中的bundle传送数据
  4. 常用的小方法,避免忘记,在此记录一下
  5. Android little error records
  6. android中的有道词典实例
  7. android 制作的精美闹钟
  8. Android SDK和最新ADT下载地址 + 环境搭
  9. Android(安卓)基于Http协议的文件上传
  10. android 为activity添加optionMenu选项菜