属性详解
-
src 设置前景图
- 默认情况下,图片按照本身尺寸显示
- 若给ImageView指定了具体的宽高,则图片 放大/缩小来适配。且图片会显示在ImageView的中心点处
-
background 设置背景图
- 被设置为背景图的图片,会填充ImageView的所有空间,不管ImageView的形状。因此存在被拉伸变形的问题。
- 解决背景图拉伸变形的问题
- 方案1、指定ImageView的宽高比等于背景图的宽高比
- 方案2、在drawable文件夹里面创建xml文件,并在使用background属性时指定该xml
<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center"
android:src="@drawable/more"
android:tileMode="disabled">
</bitmap>
<!--
这样该图片会等比放大/缩小以适配ImageView
gravity 属性指定图片显示在ImageView的中心点
tileMode 属性用于设置图片的平铺
-->
- ImageView可以设置padding属性控制内边距,当然只对 src 设置的图片有效。
-
ImageView等比缩放
设置 android:maxHeight
、android:maxWidth
、android:adjustViewBounds="true"
三个属性就可以设置ImageView随图片大小自行改变大小且有上限控制、保持图片比例。当然记得把图片宽高设为 wrap_content
-
图片缩放处理 android:scaleType
-
fitXY:对图像的横向与纵向进行独立缩放,使得该图片完全适应ImageView,但是图片的横纵比可能会发生改变
-
fitStart:保持纵横比缩放图片,知道较长的边与Image的编程相等,缩放完成后将图片放在ImageView的左上角
-
fitCenter:同上,缩放后放于中间;
-
fitEnd:同上,缩放后放于右下角;
-
center:保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。
-
centerCrop:保持横纵比缩放图片,知道完全覆盖ImageView,可能会出现图片的显示不完全。相当于先按照 来操作图片,然后等比放大图片直到整个ImageView被填满。
-
centerInside:保持横纵比缩放图片,直到ImageView能够完全地显示图片。相当于把图片放在ImageView的中心,然后进行放大/缩小操作,直到图片能够完全显示。
-
matrix:默认值,不改变原图的大小,从ImageView的左上角开始绘制原图, 原图超过ImageView的部分作裁剪处理