单击一个按钮时,如何使其背景图像在恢复之前会改变几秒钟?

时间:2014-02-19 17:41:01

标签: android button background-image

我已将此代码放在我的onClickListener

btnListenC.setBackgroundResource(R.drawable.lisbtnpressed);

但是从这里开始,我如何制作它以使可绘制的'lisbtnpressed'在几秒后变回其原始图像?

2 个答案:

答案 0 :(得分:2)

您可以使用 drawable 文件夹(mybutton.xml)中的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

正如您在第一段代码中所看到的,每个按钮状态都可以有不同的可绘制颜色(颜色,图像......)。可以找到按钮状态herehere

使用这种方法,您不需要使用任何代码。

答案 1 :(得分:0)

使用选择器

android button selector

或使用OnTouchListener上的ACTION_DOWN更改为设置为默认的lisbtnpressed上的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;
   }
 });