自定义UI控件指南

时间:2010-06-18 07:14:50

标签: android

我想开发一个Android应用程序,但我不想使用默认控件(按钮,复选框,单选按钮等)。有没有办法自定义这些控件,使其看起来更好。如果是这样,一些教程或指南将帮助我很多。感谢....

1 个答案:

答案 0 :(得分:15)

如果您想创建全新的UI元素,请阅读developer guide topic on creating custom components/views

另一方面,如果您只想更改现有UI元素的外观,则下面是您需要执行的非详尽列表。这假设您熟悉Android resources framework和布局系统。

  • 首先,了解这些是如何在Android源代码(AOSPGitHub's mirror)中实现的。您感兴趣的所有代码都在frameworks/base.git项目中(快速链接:resourcesJava sources

  • 对于每种类型的UI元素,为每个UI状态(默认,禁用,按下,聚焦等)和每个相关密度(例如中,高和额外)创建Nine Patch PNG drawables - 高密度)。这些PNG应位于res/drawable-mdpi/res/drawable-hdpi/res/drawable-xhdpi/目录中。

  • 对于每种类型的UI元素,请创建一个state list XML drawable<selector>),它将位于您的res/drawable/目录中。可以找到默认Android按钮的可绘制状态列表here

  • 将按钮/文本框/等的android:background属性设置为状态列表可绘制名称。例如,如果您的状态列表drawable为@drawable/mybutton,则属性值应为res/drawable/mybutton.xml

    注意:您可以使用themes来减少冗余(即将它们DRY保留在XML文件中)。