应用程序中的自定义视图(Android)

时间:2012-04-04 19:15:34

标签: java android custom-controls

我可以使用按钮,复选框,进度条等一些项目,我想定义那些可绘制项目,以便为我的应用程序使用的所有按钮的默认样式。

如果不单独在每个视图中声明样式,是否可以这样做?

如果答案是为应用程序使用主题,我会欣赏一个例子(例如更改所有按钮的样式),因为我不明白如何定义它。

提前致谢

1 个答案:

答案 0 :(得分: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>

所有这些drawable都可以是你的图像 - button_pressed可以是drawable文件夹中的png。 您还必须在清单中将主题应用于您的应用程序,如下所示:

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

希望这会有所帮助:)