2024.3.16
所学时间:2.2小时
代码行数:62
博客园数:1篇
所学知识:在Android开发中,要显示文本通常使用TextView,而显示图像则使用ImageView。由于图像通常保存为单独的图片文件,因此首先需要将图片放到res/drawable目录,然后才能引用该图片的资源名称。例如,如果有一张苹果图片,命名为apple.png,那么在XML文件中通过属性android:src来设置图片资源,其属性值格式形如@drawable/不含扩展名的图片名称。下面是一个添加了src属性的ImageView的示例:
<ImageView
android:id="@+id/iv_scale"
android:layout_width="match_parent"
android:layout_height="220dp"
android:src="@drawable/apple"
如果想在Java代码中设置图像视图的图片资源,可以调用ImageView控件的setImageResource方法。方法参数格式形如R.drawable.不含扩展名的图片名称。以苹果图片为例,给图像视图设置图片资源的代码示例如下:
ImageView iv_scale = findViewById(R.id.iv_scale);
iv_scale.setImageResource(R.drawable.apple);
观察测试App的界面效果,会发现苹果图片居中显示,而不是像文本视图里的文字那样默认靠左显示。这是因为ImageView本身默认图片居中显示,不管图片有多大或多小,图像视图都会自动缩放图片,使之刚好够着ImageView的边界,并且缩放后的图片保持原始的宽高比例,看起来图片很完美地占据视图中央。这种缩放类型在XML文件中通过属性android:scaleType定义,即使图像视图未明确指定该属性,系统也会默认其值为fitCenter,表示让图像缩放后居中显示。
在Java代码中,可以调用setScaleType方法设置图像视图的缩放类型。其中,fitCenter对应的类型为ScaleType.FIT_CENTER。示例如下:
iv_scale.setScaleType(ImageView.ScaleType.FIT_CENTER);
除了居中显示,图像视图还提供了其他缩放类型,如centerCrop、centerInside、center、fitXY、fitStart和fitEnd等。这些缩放类型的效果分别如下所示:
1.centerCrop:将图像裁剪至填充ImageView,并保持宽高比例。
2.centerInside:按比例缩放图片使其位于视图中间,不会超出ImageView的边界。
3.center:居中显示,但不缩放。
4.fitXY:拉伸图片填充整个ImageView,可能导致图片变形。
5.fitStart:保持宽高比例,缩放图片使其位于视图左上角。
6.fitEnd:保持宽高比例,缩放图片使其位于视图右下角。
这些缩放类型可以通过设置android:scaleType属性或调用setScaleType方法来实现。