android colorize自定义按钮

时间:2012-06-08 16:23:16

标签: android button

我用选择器创建了一个自定义按钮:

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

我希望能够使用灰色按钮作为图像对此按钮进行着色,然后使用我定义的颜色对其进行着色。

这可能吗?

由于

2 个答案:

答案 0 :(得分:2)

确定可以(至少在代码中)设置滤色器。

import android.graphics.PorterDuff;

Button.getBackground().setColorFilter(0xFF00FF00,PorterDuff.Mode.MULTIPLY);  //  Green
Button.getBackground().setColorFilter(0xFFFF0000,PorterDuff.Mode.MULTIPLY);  // Red

只需选择颜色并将它们放入setColorFilter参数中即可。

答案 1 :(得分:0)

是的,它运作得很好,我在我的使用中,只需创建一个9Patch按钮并将图像的名称放在“@ drawable / button_np”的位置,“button_pn”是你的名字按钮图像