2

当使用“选择器”为不同状态的按钮指定不同的图像时,例如按下、聚焦等,我是否必须为每个按钮编写一个 xml 文件?我的应用程序中有大约 15-20 个按钮,所以想知道是否有一种方法可以只编写一个 xml 并引用它的一部分?

谢谢克里斯

4

2 回答 2

1

StateListDrawable至少我知道,没有办法引用 a 的部分。

但是,由于StateListDrawables通常用于按钮背景,因此不清楚为什么首先需要多个按钮。

于 2010-06-29T18:04:44.980 回答
1

StateListDrawable 根据当前状态更改 Drawable,因为状态在运行时更改。选择最初使用的 Drawable 是您在首先指定 Drawable 时已经做的事情。

即使像 LevelListDrawable 这样的类仍然需要您指定 Drawable 的级别,而不是在使用 Drawable 的实际 View 上,AFAIK Android 会自动检查 Drawable 是否可以处理状态,如果可以,则通过它们。Drawable 永远不会引用正在使用 Drawable 的视图。

我只会为每个按钮创建多个 Drawable 文件。如果您想共享 Button 的某些属性,例如文本颜色、填充、字体大小等,您应该使用 Android 样式。

Android 样式可以让您拥有可以继承样式的 BlueButton、RedButton、GreenButton 等样式。因此,您可以让 BlueButton 设置文本颜色、文本大小、文本阴影、蓝色的可绘制对象等,然后为红色创建另一种样式,该样式仅继承 BlueButton 并且仅更改可绘制对象(尽管它可以更改它希望的任何属性),然后只需在您的 Button 小部件上使用它们。您仍然需要为样式链接到多个 Drawable 文件,但样式可以都在一个文件中。

于 2010-08-12T17:43:56.023 回答