安卓开发教程18:ImageButton 详解

279 阅读2分钟

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

我们前面了解了 ImageView 控件 和 Button 控件,接下来我们来看一下 ImageButton 控件。只是看名字好像是 前两个控件的结合,但是它是继承自 ImageView ,并不是继承自Button。

下面我来具体看一下 ImageView、 Button 、ImageButton 它们之间的区别:

ImageButton 与 Button 之间有什么区别:

  1. Button 即可显示文本,也可显示图片。ImageButton则只能显示图片,不能显示文本。
  2. Button 通过背景设置的图片会被拉伸变形,而 ImageButton 上面的图片可以按照比例缩放。
  3. Button 只能在背景上设置一张图片,而 ImageButton 则可以设置前景图 和 背景图,两张图片可叠加。

效果:

image.png

ImageButton 与 ImageView 之间有什么区别:

  1. ImageButton 有默认的按钮背景, ImageView 默认是没有背景的。
  2. ImageButton 默认是center类型的缩放, ImageView 默认的是fitCenter类型的缩放。

效果:

image.png

从ImageButton、ImageView、Button 的特性中我们可以看出来,ImageButton 比较适合用于纯图片的按钮(如某些字符无法通过文本打出来的时候),ImageView比较适合用于图片展示,Button则可用于纯文本字符以及文本加图片的按钮(如 掘金 H5版 文章页面下部的按钮)

image.png

那么我们来尝试用 前面学到的 控件来 还原一下。

  1. 首先创建一个位于 RelativeLayout 内的 LinearLayout,令其相对与底部对齐。
  2. 然后在 LinearLayout 中创建三个 Button, 令其水平排列,比例为 1:1:1。
  3. 最后借助 Button 的 drawableLeft 属性 给其设置对应的图片,以及文本。

效果:

image.png

当然在真正的项目开发中,这种效果不一定用这种方法来实现,还可以有很多更好的实现方式。我这里只是借助这个样式灵活使用一下我们前面学习的内容,以及展示一下 Button 的 drawableLeft 属性,当然它还有 drawableTop、drawableRight、drawableBottom、drawableStart、drawableEnd 等不同的类型。从这个属性命名方式我们可以之间看出来他们分别是在上下左右等位置显示图片。