我有这个按钮xml,当按下它时,按下的图像(b)会在它返回正常按钮之前显示更长的时间。
这是我的xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/a" />
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/b" />
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/b" />
<item android:drawable="@drawable/a" />
有人对此有所了解吗?
修复。我用过这个。
closeButton.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(final View v, MotionEvent event) {
switch(event.getAction())
{
case MotionEvent.ACTION_DOWN:
v.setPressed(true);
return true;
case MotionEvent.ACTION_UP:
v.setPressed(false);
try {
Thread.sleep(150);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
return true;
}
return false;
}
});
答案 0 :(得分:3)
您可以使用exitFadeDuration
<selector xmlns:android="http://schemas.android.com/apk/res/android"
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
<item android:state_activated="true" android:drawable="@android:drawable/list_selector_background_selected" />
<item android:drawable="@color/transparent" />
</selector>
这将淡化/淡出选择器上的状态变化,您可以将时间更改为其他内容。
答案 1 :(得分:1)
试试这样..
Handler handler=new Handler();
mybutton.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
v.setPressed(true);
handler.postDelayed(new Runnable() {
@Override
public void run() {
v.setPressed(false);
}
}, 2000);<-- you can set for how much time the button should be in pressed state..2 seco9nds in this case
return true;
}
});