我放在這個代碼在我onClickListener
:點擊一個按鈕後,如何恢復背景圖像會在幾秒鐘後改變?
btnListenC.setBackgroundResource(R.drawable.lisbtnpressed);
但是從這裏,我怎麼讓這個可提拉'lisbtnpressed'
變化幾秒鐘後恢復到原來的形象嗎?
我放在這個代碼在我onClickListener
:點擊一個按鈕後,如何恢復背景圖像會在幾秒鐘後改變?
btnListenC.setBackgroundResource(R.drawable.lisbtnpressed);
但是從這裏,我怎麼讓這個可提拉'lisbtnpressed'
變化幾秒鐘後恢復到原來的形象嗎?
你可以做到這一點有一個XML文件更容易在你的繪製文件夾(mybutton.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/mydrawable />
<item android:state_focused="true" android:drawable="@drawable/otherdrawable" />
<item android:drawable="@color/redcolor" />
</selector>
,並使用該按鈕XML代碼
android:background:@drawable/mybutton
正如可以在第一代碼段看你可以爲每個按鈕狀態的不同可拉伸(顏色,圖像...)。按鈕狀態可以找到here或here。
用這種方法你不需要使用任何代碼。
使用選擇
或ACTION_DOWN
改變lisbtnpressed
使用OnTouchListener
上ACTION_UP
設置爲默認
btnListenC.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN :
// change
btnListenC.setBackgroundResource(R.drawable.lisbtnpressed);
break;
case MotionEvent.ACTION_UP :
// set to original
btnListenC.setBackgroundResource(R.drawable.lisbtnoriginal);
break;
}
return true;
}
});
謝謝! android:drawable =「@ color/redcolor」是什麼?我需要指出某種顏色或某種顏色嗎? – Fuchsia
@Fuchsia是'colors.xml'中引用的資源。 – Raghunandan
@Fuchsia Drawable可以是圖像或顏色。最後一項僅僅是一個例子,但是你可以看到它沒有'state'屬性,這意味着這是默認的drawable。 – Merlevede