我有一个带背景的按钮。我需要你点击它时,背景改变了,当我发布它时,背景是一样的。
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (v.getId()){
case R.id.button:
if (v.isEnabled()){
btn.setBackgroundResource(R.drawable.btn_pressed);
}else if (!v.isEnabled()){
btn.setBackgroundResource(R.drawable.btn_normal);
}
break;
}
return false;
}
当我编写此代码时,背景会改变一次,并且始终处于“按下"
状态”答案 0 :(得分:8)
将xml创建为drawable。
button_effect.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/button_green_dark"></item>
<item android:drawable="@drawable/button_green"></item>
</selector>
现在将此xml设置为按钮背景属性。
答案 1 :(得分:2)
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
btn.setBackgroundResource(R.drawable.btn_pressed);
break;
case MotionEvent.ACTION_UP:
btn.setBackgroundResource(R.drawable.btn_normal);
break;
}
}