安卓开发教程17:ImageView 图像视图 详解

999 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情

我们前面学习了文本与按钮的控件,今天我们来看一下图像显示的控件。在显示文本的时候用的是 TextView 这个控件,那么在显示图像的是时候我就要用ImageView这个控件。

接下来我们来看一下 ImageView ,这个控件我们可以通过两种方式来显示图片。

  1. 可以直接在 XML 文件中 ,使用 src 属性来设置图片。
  2. 也可以在Java代码中 使用 setImageResource 方法图片。

示例:

首先我们来找一张图片,就拿掘金的logo来做演示吧。我们把这张图片放在res > drawable 文件夹下,并命名为 juejin。然后来创建两个ImageView。

image.png

代码:

  1. XML中使用src设置图片
<ImageView
    android:id="@id/img_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/juejin"/>
  1. XML中使用src设置图片

ImageView img_1 =  findViewById(R.id.img_1);
img_1.setImageResource(R.drawable.juejin);

效果:

image.png

注意:在Java中设置图片,无法在xml 的 split 模式下视图中立即看到效果,必须点击运行后,在安卓虚拟机中才可以看到效果。

image.png

ImageView 的常用属性

我们看到,图片被成功显示了出来,而且默认是居中显示的,那么我们如果想要改变图片显示的适配效果,我们可以使用scaleType 属性来设置。下面我们就来看一下scaleType属性的具体示例。

scaleType属性类型大体上分为两种,一种类型是图片居中,一种是保持宽高比例

图片居中的

我们首先来看图片居中的:

属性Java中方法说明
centerCENTER保持图片原尺寸,并使其位于容器中间
centerCropCENTER_CROP拉伸图片使其铺满,并使其位于容器中间
centerInsideCENTER_INSIDE保持宽高比,缩小图片使其位于容器中间(只是缩小不放大)

效果:

image.png

保持宽高比例的

然后是保持宽高比例的:

属性Java中方法说明
fitXYFIT_XY拉伸图使其正好铺满容器
fitStartFIT_START保持宽高比例,拉伸图片使其位于视图上面或者左侧
fitCenterFIT_CENTER保持宽高比例,拉伸图片使其位于视图中间
fitEndFIT_END保持宽高比例,拉伸图片使其位于视图下面或者右侧

效果:

image.png

看起来fitCenter、centerInside、center都可以使图片居中显示,但跟容器大小结合起来就会有不一样的效果。(其中fitCenter,可以放大也可以缩小而 centerInside 只能缩小不能放大。)

示例:

  1. 当图片大于容器的宽高的时候,centerInside 和 fitCenter 都会缩小图片,因此他俩显示效果是一样的。

image.png

  1. 当图片大于容器的宽高的时候,centerInside 放大到图片尺寸 而 fitCenter 放大到与容器一样的尺寸,因此他俩显示效果是不同。

image.png

3.当图片小于容器的宽高的时候,centerInside 和 center 都会保持图片大小不变,它俩的显示效果是一样的。

image.png

大家可以试用一些这些效果,都比较简单,试用过后才可以更好的记住每一种的效果,方便以后在实际开发过程中使用。