自定义Holo按钮

时间:2013-05-17 19:33:47

标签: android button

我尝试使用自定义selectors其他人在此处发布,使用设置的颜色过滤器和各种其他内容。我认为我完全错了,因为在完全诚实的情况下,我对刚刚开始开发的设计并不满意,但我仍然不认为按照我的看法做我想做的事情会很复杂:

我开发了一个froyo和up的应用程序。我希望按钮的背景颜色为全景绿色和全息橙色,就像Android developer website上的样本一样。这就是我想要与众不同的一切。当按下holo上的按钮或标准按钮onpress等时,我希望标准的蓝色突出显示在froyo,gingerbread等中的行为。

我真的很感激任何指导。提前谢谢你们!

1 个答案:

答案 0 :(得分:7)

编辑:

有一种更简单的方法来改变全息主题的颜色。本网站将为您完成:

http://android-holo-colors.com


自定义全息按钮的唯一方法是使用Photoshop等图像编辑器编辑按钮绘图。方法如下:

  • 打开SDK目录中的platforms/android-17/data/res文件夹,找到可绘制文件夹中的全息按钮(以btn_default_holo_...开头)。
  • 使用图像编辑器打开它们,只需更改颜色(色调/饱和度)即可匹配所需的颜色。有3个或4个不同的抽屉,每个按钮状态一个。
  • 将它们保存在应用的相应可绘制文件夹中。您必须为要处理的每个屏幕密度执行此操作(mdpihdpixhdpi通常就足够了。

我还没有测试过,但仅仅编辑xhdpi按钮就足够了。它们将缩小到较低的密度。

自定义每个drawable后,您必须创建一个将用作自定义按钮的选择器。以下是我在其中一个应用中使用的选择器示例,用于创建绿色全息按钮:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:state_enabled="true"
          android:drawable="@drawable/__btn_green_normal_holo_light"/>
    <item android:state_window_focused="false" android:state_enabled="false"
          android:drawable="@drawable/__btn_default_disabled_holo_light"/>
    <item android:state_pressed="true"
          android:drawable="@drawable/__btn_default_pressed_holo_light"/>
    <item android:state_focused="true" android:state_enabled="true"
          android:drawable="@drawable/__btn_default_focused_holo_light"/>
    <item android:state_enabled="true"
          android:drawable="@drawable/__btn_green_normal_holo_light"/>
    <item android:state_focused="true"
          android:drawable="@drawable/__btn_default_disabled_focused_holo_light"/>
    <item
          android:drawable="@drawable/__btn_default_disabled_holo_light"/>
</selector>

以下是修改后的green holo button drawable的示例。如果你感兴趣,你可以查看我项目的其他drawables,我做你想做的事情(我也有一个红色按钮)。