我想开发一个Android应用程序,但我不想使用默认控件(按钮,复选框,单选按钮等)。有没有办法自定义这些控件,使其看起来更好。如果是这样,一些教程或指南将帮助我很多。感谢....
答案 0 :(得分:15)
如果您想创建全新的UI元素,请阅读developer guide topic on creating custom components/views。
另一方面,如果您只想更改现有UI元素的外观,则下面是您需要执行的非详尽列表。这假设您熟悉Android resources framework和布局系统。
首先,了解这些是如何在Android源代码(AOSP,GitHub's mirror)中实现的。您感兴趣的所有代码都在frameworks/base.git
项目中(快速链接:resources,Java 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文件中)。