如何以编程方式用作背景时更改ImageButton可绘制颜色?

时间:2015-09-14 16:37:28

标签: java android android-studio imageview android-imagebutton

我有以下ImageButton:

<ImageButton
    android:id="@+id/nopeButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/nope_button_states" />

以下是nope_button_states

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

现在我想改变drawable的色调。当我使用时:

android:src="@drawable/nope_button"

然后我可以这样做:nopeButton.setColorFilter()但在后台使用时这不再起作用了。

当与背景属性一起使用时,如何更改ImageButton图纸的色调颜色?

1 个答案:

答案 0 :(得分:1)

尝试使用:

nopeButton.getBackground().setColorFilter();