代码之家  ›  专栏  ›  技术社区  ›  Tima

覆盖onclick颜色/可绘制

  •  1
  • Tima  · 技术社区  · 14 年前

    我想知道,如何覆盖标准onclick颜色(黄色) Button 橙色?! 在写这个问题的时候,我看到,这些不是颜色,而是图像。 )

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

    我在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的可提取资源。

    有什么建议吗?!

    谢谢您,

    穆尔

    2 回复  |  直到 14 年前
        1
  •  4
  •   Zelimir    14 年前

    一个工作示例。此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> 
    

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

        2
  •  1
  •   Kevin Coppock    14 年前

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

    推荐文章