我想开发一个安卓应用,但是我不想使用默认的控件(按钮、复选框、单选按钮等)。有没有办法自定义这些控件使它们看起来更好看?如果有的话,一些教程或指南将对我很有帮助。谢谢...
我想开发一个安卓应用,但是我不想使用默认的控件(按钮、复选框、单选按钮等)。有没有办法自定义这些控件使它们看起来更好看?如果有的话,一些教程或指南将对我很有帮助。谢谢...
首先,查看这些在Android源代码(AOSP,GitHub的镜像)中是如何实现的。你感兴趣的所有代码都在frameworks/base.git
项目中(快速链接:资源, Java源代码)。
对于每种UI元素,为每个UI状态(默认、禁用、按下、聚焦等)和每个相关密度(例如中、高和超高密度),创建Nine Patch PNG可绘制对象。这些PNG应该在你的res/drawable-mdpi/
、res/drawable-hdpi/
和res/drawable-xhdpi/
目录中。
对于每种UI元素,创建一个状态列表XML可绘制对象(<selector>
),它将位于你的res/drawable/
目录中。默认的Android推送按钮的状态列表可绘制对象可以在这里找到。
将你的按钮/文本框/等的android:background
属性设置为状态列表可绘制对象名称。例如,如果你的状态列表可绘制对象是res/drawable/mybutton.xml
,则属性值应为@drawable/mybutton
。
注意:你可以使用主题来减少XML文件中的冗余(即保持它们DRY)。