5

我已经尝试搜索和使用其他人在此处发布的自定义选择器,使用设置的颜色过滤器和其他各种东西。我认为我完全错了,因为老实说,我对刚开始开发的设计并不擅长,但我仍然不认为做我想做的事情会像我所看到的那样复杂:

我已经为 froyo 及更高版本开发了一个应用程序。我希望按钮的背景颜色是全息绿色和全息橙色,就像Android 开发者网站上的样本一样。这就是我想要与众不同的全部。当按下全息按钮或标准按钮 onpress 等时,我想要标准的蓝色突出显示。在 froyo、姜饼等中预期的行为。

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

4

1 回答 1

7

编辑 :

有一种更简单的方法可以更改全息主题的颜色。这个网站会为你做:

http://android-holo-colors.com


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

  • 打开platforms/android-17/data/resSDK 目录中的文件夹并在可绘制文件夹中找到全息按钮(它们以 开头btn_default_holo_...)。
  • 使用您的图像编辑器打开它们,然后简单地更改它们的颜色(色相/饱和度)以匹配您想要的颜色。有 3 或 4 个不同的可绘制对象,每个按钮状态一个。
  • 将它们保存在应用程序的相应可绘制文件夹中。您必须为要处理的每个屏幕密度执行此操作(mdpi, hdpi,xhdpi通常就足够了)。

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

自定义每个可绘制对象后,您必须创建一个将用作自定义按钮的选择器。这是我在我的一个应用程序中使用的选择器示例,用于创建绿色全息按钮:

<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>

这是一个修改后的绿色全息按钮 drawable的示例。如果您有兴趣,可以查看我项目的其他可绘制对象,我完全按照您的意愿进行操作(我也有一个红色按钮)。

于 2013-05-17T20:34:35.970 回答