持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情
我们前面学习了文本与按钮的控件,今天我们来看一下图像显示的控件。在显示文本的时候用的是 TextView 这个控件,那么在显示图像的是时候我就要用ImageView这个控件。
接下来我们来看一下 ImageView ,这个控件我们可以通过两种方式来显示图片。
- 可以直接在 XML 文件中 ,使用 src 属性来设置图片。
- 也可以在Java代码中 使用 setImageResource 方法图片。
示例:
首先我们来找一张图片,就拿掘金的logo来做演示吧。我们把这张图片放在res > drawable 文件夹下,并命名为 juejin。然后来创建两个ImageView。
代码:
- XML中使用src设置图片
<ImageView
android:id="@id/img_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/juejin"/>
- XML中使用src设置图片
ImageView img_1 = findViewById(R.id.img_1);
img_1.setImageResource(R.drawable.juejin);
效果:
注意:在Java中设置图片,无法在xml 的 split 模式下视图中立即看到效果,必须点击运行后,在安卓虚拟机中才可以看到效果。
ImageView 的常用属性
我们看到,图片被成功显示了出来,而且默认是居中显示的,那么我们如果想要改变图片显示的适配效果,我们可以使用scaleType 属性来设置。下面我们就来看一下scaleType属性的具体示例。
scaleType属性类型大体上分为两种,一种类型是图片居中,一种是保持宽高比例
图片居中的
我们首先来看图片居中的:
| 属性 | Java中方法 | 说明 |
|---|---|---|
| center | CENTER | 保持图片原尺寸,并使其位于容器中间 |
| centerCrop | CENTER_CROP | 拉伸图片使其铺满,并使其位于容器中间 |
| centerInside | CENTER_INSIDE | 保持宽高比,缩小图片使其位于容器中间(只是缩小不放大) |
效果:
保持宽高比例的
然后是保持宽高比例的:
| 属性 | Java中方法 | 说明 |
|---|---|---|
| fitXY | FIT_XY | 拉伸图使其正好铺满容器 |
| fitStart | FIT_START | 保持宽高比例,拉伸图片使其位于视图上面或者左侧 |
| fitCenter | FIT_CENTER | 保持宽高比例,拉伸图片使其位于视图中间 |
| fitEnd | FIT_END | 保持宽高比例,拉伸图片使其位于视图下面或者右侧 |
效果:
看起来fitCenter、centerInside、center都可以使图片居中显示,但跟容器大小结合起来就会有不一样的效果。(其中fitCenter,可以放大也可以缩小而 centerInside 只能缩小不能放大。)
示例:
- 当图片大于容器的宽高的时候,centerInside 和 fitCenter 都会缩小图片,因此他俩显示效果是一样的。
- 当图片大于容器的宽高的时候,centerInside 放大到图片尺寸 而 fitCenter 放大到与容器一样的尺寸,因此他俩显示效果是不同。
3.当图片小于容器的宽高的时候,centerInside 和 center 都会保持图片大小不变,它俩的显示效果是一样的。
大家可以试用一些这些效果,都比较简单,试用过后才可以更好的记住每一种的效果,方便以后在实际开发过程中使用。