一、adjustViewBounds:设置缩放是否保存原图长宽比
需要配合maxWidth和maxHeight使用,不然不会生效
<!-- 正常的 -->
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@drawable/goods_bg"
android:layout_margin="10dp"/>
<!-- 加了adjustViewBounds的 -->
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/goods_bg"
android:layout_margin="10dp"
android:adjustViewBounds="true"
android:maxWidth="@dimen/max_size"
android:maxHeight="@dimen/max_size"/>
二、scaleType:缩放类型
- fitXY:对图像的横向与纵向进行独立缩放,使得该图片完全适应ImageView,但是图片的横纵比可能会发生改变
- fitStart:保持纵横比缩放图片,知道较长的边与Image的编程相等,缩放完成后将图片放在ImageView的左上角
- fitCenter:同上,缩放后放于中间;
- fitEnd:同上,缩放后放于右下角;
- center:保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。
- centerCrop:保持横纵比缩放图片,知道完全覆盖ImageView,可能会出现图片的显示不完全
- centerInside:保持横纵比缩放图片,直到ImageView能够完全地显示图片
- matrix:默认值,不改变原图的大小,从ImageView的左上角开始绘制原图, 原图超过ImageView的部分作裁剪处理
可以自己去试试,很重点