自定义UI控件指南

Ash*_*r M 6 android

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

Rom*_*rik 15

如果要创建全新的UI元素,则应阅读有关创建自定义组件/视图开发人员指南主题.

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

  • 首先,看看这些是如何在Android源代码中实现的(AOSP,GitHub的镜像).您感兴趣的所有代码都在frameworks/base.git项目中(快速链接:资源,Java源代码)

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

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

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

    注意:您可以使用主题来减少XML文件中的冗余(即保持DRY).