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 回答