所以我花了很长时间来寻找是否有解决方案。基本上,下面的代码允许我按下按钮,当我按下(action_down)按钮的“按下版本”显示良好时,然后当我移开手指时图形恢复正常(action_up)。
这部分工作正常但是我需要ACTION_DOWN在用户按下按钮后保持活动一段时间并且不会如此快地返回ACTION_UP。我可以看到很多不同的人提出这个问题,但没有关于编辑action_up或action_down部分的答案。我认为必须有一些简单的方法来实现这个目标。
当前代码:
@Override
public boolean onTouch(View v, MotionEvent event) {
if (MotionEvent.ACTION_DOWN == event.getAction()) {
int img = Integer.parseInt(v.getTag(R.id.tag_press_down_img).toString());
if (v instanceof ImageView) {
((ImageView) v).setImageResource(img);
}
} else if (MotionEvent.ACTION_UP == event.getAction()) {
int img = Integer.parseInt(v.getTag(R.id.tag_press_up_img).toString());
if (v instanceof ImageView) {
((ImageView) v).setImageResource(img);
}
}
return false;
}
(此代码工作正常,但用户体验不好,因为按钮在释放后恢复到ACTION_UP太快(立即) - 我希望ACTION_DOWN为1)显示1-2秒然后恢复为ACTION_UP或2)保持在action_down直到被叫事件完成 - 在这种情况下加载另一个屏幕。)
谢谢!