首页 文章

覆盖onClick颜色/可绘制

提问于
浏览
1

我试图找出,如何覆盖Button橙色的标准onClick颜色(黄色)?! ( during writing this question I've seen, that these are no colors, but images

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

我在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 回答

  • 1

    一个工作的例子 . 此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>
    

    此外,您可以定义描边(按钮边框) .

  • 4

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

相关问题