如何在一个地方定义按钮背景并在整个应用程序周围使用?

时间:2011-07-07 09:02:36

标签: android android-layout android-emulator android-widget android-manifest

我希望我的Android应用程序的所有按钮都使用相同的背景图像,这是所有按钮都有属性:

android:background="@drawable/my_btn_bg"

有没有办法在一个地方中定义它并在整个应用程序的按钮中生效? (而不是在每个按钮组件上定义背景)

我认为 theme.xml 中的定义可能是一个解决方案,但我不知道该怎么做?有人可以给我一些提示吗?

2 个答案:

答案 0 :(得分:11)

对于Android样式,您引用R.attr的预设属性。在这里,你想引用android:buttonStyle。你可以试试这个:

<style name="ApplicationStyle" parent="android:Theme">
<item name="android:buttonStyle">@style/yourButton</item>
</style>

另请参阅此Themes and Styles

答案 1 :(得分:5)

使用以下内容定义styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="buttonStyle">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:background">@drawable/bg_button</item>
    </style>
</resources>

对应用程序中的任何按钮使用相同的样式:

<Button 
    android:text="Test Button" 
    android:id="@+id/btnTest" 
    style="@style/buttonStyle">
</Button>