2013-05-17 62 views
5

我试过搜索和使用自定义selectors其他人已发布在这里,使用设置的颜色过滤器和各种其他的东西。我认为我完全弄错了,因为我完全诚实地说,刚刚开始开发的设计并不是很好,但我仍然不认为它可以像我所看到的那样做我想做的那样复杂:自定义全息按钮

我为froyo开发了一款应用程序。我希望按钮的背景颜色为全色绿色和全橙色,如Android developer website上的色板。这就是我想要与众不同的地方。我希望在全息按钮或标准按钮onpress等按钮上的标准蓝色突出显示在froyo,姜饼等行为预计

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

回答

7

编辑:

有改变全息主题的颜色更简单的方法。这个网站将你做它:

http://android-holo-colors.com


定制全息按钮的唯一方法是用Photoshop等图像编辑器编辑按钮可绘制。这里是如何:

  • 打开您的SDK目录的platforms/android-17/data/res文件夹,找到在绘制文件夹(他们开始btn_default_holo_...)的全息按钮。
  • 用你的图像编辑器打开它们,只需改变它们的颜色(色调/饱和度)以匹配你想要的颜色。有3个或4个不同的drawable,每个按钮状态一个。
  • 将它们保存在您的应用的相应可绘制文件夹中。您必须为您要处理的每个屏幕密度执行此操作(通常,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的例子。如果你有兴趣,你可以检查我的项目的其他可绘图,我确切地做你想做的事(我也有一个红色的按钮)。

+0

谢谢你的回答!我唯一担心的是,我必须为每个Android版本调整它以模仿通常的(姜饼和蓝色的橙色等),还是我弄错了? – AndroidPenguin

+1

你是对的,但你也可以在所有版本中使用holo按钮。这就是我所做的,以及几个众所周知的应用程序。他们比旧的2.1按钮更好。 – Dalmas

+0

好的,我会这样做的! :) 万分感谢! – AndroidPenguin