目录
1.图像视图 ImageView
显示文本用到了文本视图TextView,显示图像则用到图像视图ImageView。由于图像通常保存为单独的图片文件,因此需要先把图片放到res/drawable目录中,然后再去引用图片的资源名称。ImageView默认居中显示,不管图片大或者还是小,图像视图会自动缩放图片,使之刚好够着ImageView的边界,并且缩放后的图片保持原始的宽高比例,看起来图片完美占据了视图中央。这种缩放类型在xml文件中通过属性android:scaleType定义,即使图像视图未明确指定该属性,系统也会默认其值为fitCnter,表示让图像缩放后居中显示。
xml设置方法
<ImageView
android:id="@+id/iv_scale"
android:layout_width="match_parent"
android:layout_height="220dp"
android:layout_marginTop="5dp"
android:src="@drawable/apple" />
java设置方法
iv_scale = findViewById(R.id.iv_scale);
iv_scale.setImageResource(R.drawable.apple); // 设置图像视图的图片资源
添加缩放属性的ImageView标签如下:
<ImageButton
android:layout_width="match_parent"
android:layout_height="80dp"
android:src="@drawable/sqrt"
android:scaleType="fitCenter" />
在Java代码中可调用setScaleType方法设置图像视图的缩放类型,其中fitCenter对应的类型为ScaleType.FIT_CENTER,设置代码如下
iv_scale.setScaleType(ImageView.ScaleType.FIT_CENTER);
缩放类型的取值说明
注意,fitCenter是默认的缩放类型,fitCenter既允许缩小图片,也允许放大图片,centerInside只允许缩小图片,不允许放大图片,而center自始至终保持原始尺寸。因此,当图片尺寸大于视图宽高,centerInside与fitCenter都会缩小图片,此时他两显示效果相同;当图片尺寸小于视图宽高,centerInside与center都保持图片大小不变,此时它俩的显示效果相同。
2.图像按钮 ImageButton
ImageButton继承于ImageView。ImageButton和Button区别如下:
- Button既可以显示显示文本也可以显示图片,通过setBackgroundResource方法设置背景图片,而ImageButton只能显示图片不能显示文本。
- ImageButton上的图像可按比例缩放,而Button通过背景设置的图像会拉伸变形,因为背景采用fitXY方式,无法按比例缩放。
- Button只能靠背景显示一张图片,而ImageButton可分别在前景和背景显示图片,从而实现两张图片叠加的效果。
3.同时展示文本与图像
想在文字周围放置图片,使用Button就能实现,Button提供了几个与图标有关的属性,通过这些属性可以指定文字旁边的图标。
- drawableTop:指定文字上方的图片
- drawableBottom:指定文字下方的图片
- drawableLeft:指定文字左边的图片
- drawableRight:指定文字右边的图片
- drawablePadding:指定图片与文字的间距
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_gravity="center"
android:drawableLeft="@drawable/ic_about"
android:drawablePadding="5dp"
android:text="图标在左"
android:textColor="#000000"
android:textSize="17sp" />