覆盖onClick颜色/可绘制

时间:2010-11-24 13:15:26

标签: android button coding-style

我试图找出,如何用橙色覆盖Button的标准onClick颜色(黄色)?! ( 在写这个问题时我看过,这些都没有颜色,但是图片

有没有简单的方法呢?或者我应该在这种情况下写一个新的风格?

我在GIT中找到了com.android.internal.R.attr.buttonStyle的样子。我想稍微复制和修改那个按钮样式。但是,如果我这样做,我会得到XML-Errors

<?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的可绘制资源。

有什么建议吗?!

谢谢,

穆尔

2 个答案:

答案 0 :(得分: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> 

此外,您还可以定义笔触(按钮边框)。

答案 1 :(得分:1)

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