How to define button background at one place and u

2020-04-04 11:17发布

问题:

I would like all the buttons of my android application use the same background image, that's all buttons have attribute:

android:background="@drawable/my_btn_bg"

Is there any way to define this in one place and take effect in the whole application's buttons? (instead of define the background on each button component)

I think define inside theme.xml could be a solution, but I do not know how to do it ? Could some one give me some hints?

回答1:

For Android styles, you reference the preset attributes of R.attr. Here, you want to to reference android:buttonStyle. You can try this :

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

Also look in this Themes and Styles



回答2:

Define styles.xml with the below:

<?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>

And use the same style for any button within your application as:

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