Как определить фон кнопки в одном месте и использовать вокруг всего приложения? - PullRequest
7 голосов
/ 07 июля 2011

Я хотел бы, чтобы все кнопки моего приложения для Android использовали одно и то же фоновое изображение , это все кнопки имеют атрибут:

android:background="@drawable/my_btn_bg"

Есть ли способ определить это в одно место и вступить в силу во всех кнопках приложения?(вместо определения фона для каждого компонента кнопки)

Я думаю, определение внутри theme.xml может быть решением, но я не знаю, как это сделать?Может ли кто-нибудь дать мне несколько советов?

Ответы [ 2 ]

11 голосов
/ 07 июля 2011

Для стилей Android вы ссылаетесь на предустановленные атрибуты R.attr.Здесь вы хотите сослаться на андроид: buttonStyle.Вы можете попробовать это:

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

Также посмотрите в этом Темы и стили

6 голосов
/ 07 июля 2011

Определите 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>
...