Android,将ImageButton背景设置为Null并设置onClick突出显示颜色

时间:2013-09-08 15:27:51

标签: android imagebutton

是否可以将ImageButton的背景设置为“@null”并仍然选择onClick高亮颜色?

非常感谢

修改

我在我的ImageButton上使用以下xml,因此android背景为null但我的自定义背景为:

<ImageButton
    android:id="@+id/m1_btn"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@null"
    android:src="@drawable/pause"
    tools:ignore="ContentDescription" />

然后我的按钮背景在我的Java中被控制如下:

    pp_btn1.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        i +=1;
        if (i % 2 == 0) {
            pp_btn1.setImageResource(R.drawable.pause);
        } else {
            pp_btn1.setImageResource(R.drawable.play);
        }
    }
});

有了这个解释,有没有办法仍然实现按钮突出显示onClick?

非常感谢

1 个答案:

答案 0 :(得分:1)

是的,在drawable文件夹中有一个新的xml clickedstates.xml,用于定义当您按下图像按钮时应发生的情况以及默认背景应该是什么。并将此xml作为图像按钮的背景,如@ drawable / clickedstates .. 。例如:

<?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/default_bgnd" />

<item     android:state_focused="true"        
android:drawable="@drawable/new_green" />

<item     android:state_pressed="true"        
android:drawable="@drawable/new_green" />

<item     android:state_checked="true"        
android:drawable="@drawable/new_green"/>

<item     android:state_selected="true"        
android:drawable="@drawable/new_green" /> 
</selector>