1

ボタン、チェックボックス、プログレスバーなどのいくつかのアイテムのドローアブルがあり、アプリが使用するすべてのボタンのデフォルトスタイルに対応するためにこれらのドローアブルを定義したいと思います。

各ビューでスタイルを個別に宣言しなくても、それは可能ですか?

答えがアプリのテーマを使用することである場合、それを定義する方法がわからないので、例(たとえば、すべてのボタンのスタイルを変更する)をいただければ幸いです。

前もって感謝します

4

1 に答える 1

2

答えは、あなたが期待していたようにテーマを使用することです。優れたドキュメントは、Android開発者サイトにあります:http://developer.android.com/guide/topics/ui/themes.html

ボタンの場合、次のように実行できます。新しいテーマを定義します。

<style name="MyTheme" parent="@android:style/Theme.Holo">
    <item name="android:buttonStyle">@style/button</item>
</style>

ボタンのスタイルが次のように定義されている場合:

<style name="button" parent="@android:style/Widget.Button">
    <item name="android:background">@drawable/button_background_selector</item>
    <item name="android:textColor">@drawable/button_text_selector</item>
</style>

button_background_selectorは、次のように定義されます。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/button_pressed" android:state_pressed="true"></item>
    <item android:drawable="@drawable/button_disabled" android:state_enabled="false"></item>
    <item android:drawable="@drawable/button_default"></item>

</selector>

これらのドローアブルはすべて画像にすることができます。button_pressedはドローアブルフォルダ内のpngにすることができます。また、次のようにマニフェストでテーマをアプリケーションに適用する必要があります。

<application
    android:theme="@style/MyTheme" >
</application>

お役に立てれば :)

于 2012-04-04T19:23:36.620 に答える