2010-11-24 114 views
1

我想知道,如何覆盖橙色的Button标准onClick颜色(黄色)? (写这个问题我已经看到时,这些是没有颜色的,但图像覆盖点击颜色/可绘制

有没有简单的方法来做到这一点?或者我应该在这种情况下写出一种新风格?

我在GIT中发现了com.android.internal.R.attr.buttonStyle的样子。我想复制并修改那个按钮样式。但如果我这样做,我得到的XML错误

<?xml version="1.0" encoding="utf-8"?> 
<selector> 
    <item 
     android:state_window_focused="false" 
     android:state_enabled="true" 
     android:drawable="@drawable/btn_default_normal"/> 
    <item 
     android:state_window_focused="false" 
     android:state_enabled="false" 
     android:drawable="@drawable/btn_default_normal_disable" /> 
    <!-- Modified item --> 
    <item 
     android:state_pressed="true" 
     android:drawable="@drawable/btn_default_selected" /> 
    <item 
     android:state_focused="true" android:state_enabled="true" 
     android:drawable="@drawable/btn_default_selected" /> 
    <item 
     android:state_enabled="true" 
     android:drawable="@drawable/btn_default_normal" /> 
    <item 
     android:state_focused="true" 
     android:drawable="@drawable/btn_default_normal_disable_focused" /> 
    <item 
     android:drawable="@drawable/btn_default_normal_disable" /> 
</selector> 

好吧,我想,我必须填充选择器的属性xmlns:android。如果我填写“http://schemas.android.com/apk/res/android”,我会遇到其他错误。这一次,因为无法找到android的drawable资源。

有什么建议?

谢谢

穆尔

回答

4

一个工作的例子。这个XML被设置为背景可绘制。根据需要调整颜色。

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true" > 
     <shape> 
      <gradient 
       android:startColor="#FFAAAAAA" 
       android:endColor="#FFAAAAAA" 
       android:angle = "180" /> 
      <corners 
       android:radius="10dip" /> 
     </shape> 
    </item> 

    <item android:state_focused="true" > 
     <shape> 
      <gradient 
       android:startColor="#FF888888" 
       android:endColor = "#FF888888" 
       android:angle = "180"/> 
      <corners 
       android:radius="10dip" /> 
     </shape> 
    </item> 

    <item>   
     <shape> 
      <gradient 
       android:startColor="#FFFFFFFF" 
       android:endColor = "#FFFFFFFF" 
       android:angle = "180" /> 
      <corners 
       android:radius="10dip" /> 
     </shape> 
    </item> 
</selector> 

另外,你可以定义Stroke(按钮边框)。

+0

这是解决方法,我现在就做。谢谢 – Tima 2010-11-24 13:46:38

1

Mur,您是否将这些资源(例如btn_default_normal)复制到drawables文件夹中?你必须得到这些资源(它们可以在platform/android-8/data/res /然后是不同的可绘制文件夹下的sdk文件夹中找到),然后将它们修改为每个选择器状态所需的样式。

+0

不,我没有......我想,有一种方法可以访问它们。我的意思是,你可以访问一些系统布局。 – Tima 2010-11-24 13:45:31