📌  相关文章
📜  如何在 Android 中的按钮内显示 Drawable?(1)

📅  最后修改于: 2023-12-03 15:38:12.570000             🧑  作者: Mango

如何在 Android 中的按钮内显示 Drawable?

在 Android 中,我们可以使用按钮控件来创建一个按钮。在某些情况下,我们可能需要在按钮内显示一个图片或图标。为了实现这个目标,我们可以使用 Drawable 对象,并将其设置为按钮的背景或前景。

一、设置 Drawable 为按钮的背景

我们可以使用以下步骤将 Drawable 设置为按钮的背景:

  1. 创建一个 Drawable 对象,例如一个 ShapeDrawable,或者从资源文件中加载一个图片。
  2. 调用按钮的 setBackgroundDrawable() 方法,将 Drawable 对象设置为按钮的背景。

下面是一个示例代码片段,它演示了如何将一个 ShapeDrawable 设置为按钮的背景:

// 创建一个 ShapeDrawable 对象
ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());
shapeDrawable.getPaint().setColor(Color.BLUE);

// 从布局文件中获取按钮控件
Button button = findViewById(R.id.button);

// 将 ShapeDrawable 对象设置为按钮的背景
button.setBackgroundDrawable(shapeDrawable);

在这个示例中,我们使用 ShapeDrawable 创建了一个蓝色的圆形背景,并将它设置为按钮的背景。在实际应用中,我们可以使用不同种类的 Drawable 对象,来创建不同样式的按钮背景。

二、设置 Drawable 为按钮的前景

除了设置 Drawable 为按钮的背景之外,我们还可以将 Drawable 设置为按钮的前景,这样它会覆盖按钮上的文本。我们可以使用以下步骤将 Drawable 设置为按钮的前景:

  1. 创建一个 Drawable 对象,例如一个 BitmapDrawable,或者从资源文件中加载一个图片。
  2. 调用按钮的 setCompoundDrawables() 方法,将 Drawable 对象设置为按钮的前景。

下面是一个示例代码片段,它演示了如何将一个 BitmapDrawable 设置为按钮的前景:

// 从资源文件中加载一个图片
Drawable iconDrawable = getResources().getDrawable(R.drawable.icon);

// 从布局文件中获取按钮控件
Button button = findViewById(R.id.button);

// 将 BitmapDrawable 对象设置为按钮的前景,并调整显示位置
button.setCompoundDrawablesWithIntrinsicBounds(iconDrawable, null, null, null);
button.setCompoundDrawablePadding(10);

在这个示例中,我们从资源文件中加载了一个图片,并将其设置为按钮的前景。我们还使用了 setCompoundDrawablesWithIntrinsicBounds() 方法,将图片设置在按钮的左侧,并设置了一个 10 像素的深度。

三、总结

使用 Drawable 对象可以为 Android 应用程序中的按钮添加图片或图标。我们可以将 Drawable 对象设置为按钮的背景或前景。要将 Drawable 设置为按钮的背景,我们使用 setBackgroundDrawable() 方法。要将 Drawable 设置为按钮的前景,我们使用 setCompoundDrawables() 方法,并在其中指定 Drawable 对象的位置和偏移量。