具有不同颜色的标准Android按钮

具有不同颜色的标准Android按钮

我想稍微改变一个标准的Android按钮的颜色,以便更好地匹配客户的品牌。

到目前为止,我发现最好的方法是更改Button可拉到位于res/drawable/red_button.xml:

<?xml version="1.0" encoding="utf-8"?>    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/red_button_pressed" />
    <item android:state_focused="true" android:drawable="@drawable/red_button_focus" />
    <item android:drawable="@drawable/red_button_rest" /></selector>

但要做到这一点,我实际上需要为每个要自定义的按钮创建三个不同的绘图(一个用于REST按钮,一个用于聚焦时,另一个用于按下)。比我需要的要复杂得多,也不干燥。

我真正想做的就是把某种颜色转换到按钮上。有比我更容易改变按钮颜色的方法吗?


绝地无双
浏览 328回答 3
3回答

米脂

根据Tomasz的答案,您还可以使用PorterDuff乘模式编程地设置整个按钮的阴影。这将改变按钮的颜色,而不仅仅是色调。如果从标准灰色阴影按钮开始:button.getBackground().setColorFilter(0xFFFF0000,&nbsp;PorterDuff.Mode.MULTIPLY);会给你一个红色阴影按钮,button.getBackground().setColorFilter(0xFF00FF00,&nbsp;PorterDuff.Mode.MULTIPLY);会给你一个绿色阴影按钮等,其中的第一个值是颜色的六角形格式。它的工作原理是将当前按钮的颜色值乘以您的颜色值。我相信你也可以用这些模式做更多的事情。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android