主要属性
android:src
设置图片资源
android:scaleType
设置图片缩放类型
android:maxHeight
最大高度
android:maxWidth
最大宽度
android:adjustViewBounds
调整View的界限
基本框架
需提前在drawable
文件夹添加图片资源,这里用博主旅游时拍的风景照为例:
之后在activity_main.xml
中设置好基本框架,就可以在预览中看到我们设置的图片。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:src="@drawable/image1"
android:layout_width="200dp"
android:layout_height="200dp"/>
</LinearLayout>
可以发现,为了能让图片显示在ImageView框中,AS对图片进行了默认等比缩放。
设置缩放类型
如果不想使用默认的等比缩放,可以调整scaleType
。如用fitXY
可以拉伸图片使其完全填充ImageView。
除此之外,有众多缩放类型可供选择:
fitStart
保持宽高比缩放图片,直到较长的边与ImageView的边长相等,缩放完成后将图片放在左上角。
fitCenter
默认值,同上放缩后置于中间。
fitEnd
同上放缩后置于右下角。
fitXY
对图像的横纵方向进行独立缩放,使得该图片完全适应ImageView,可能会改变图片的宽高比。
center
保持原图的大小,显示在ImageView的中心,超过ImageView的部分会被裁剪。
centerCrop
保持宽高比缩放图片,直到能覆盖ImageView,超出的部分裁剪。
centerInside
保持宽高比缩放图片,直到ImageView能够完全显示图片。(当图片大小大于ImageView时与fitCenter
效果一致,当图片小于ImageView时图片不会被放大)
matrix
不改变原图大小,将图片置于左上角,超出的部分裁剪。
设置最大宽高与自动调整
一般情况下,我们的图片很难刚好与ImageView相等,如果直接将ImageView的宽高属性设置为wrap_content
,又容易被现在特别高清的照片“撑爆”,为了调整图片缩放到我们想要的大小,我们可以设置最大宽高,并开启自动调整。
设置前,ImageView被图片撑到屏幕的极限:
设置后,图片就会被约束到我们设置的极限大小,且ImageView的宽高与图片完全相等:
<ImageView
android:src="@drawable/image1"
android:maxHeight="200dp"
android:maxWidth="200dp"
android:adjustViewBounds="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>