Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 动作\向下运动事件上图形按钮的定时显示_Java_Android_Motionevent - Fatal编程技术网

Java 动作\向下运动事件上图形按钮的定时显示

Java 动作\向下运动事件上图形按钮的定时显示,java,android,motionevent,Java,Android,Motionevent,所以我花了很长时间想看看是否有解决办法。基本上,下面的代码允许我按下一个按钮,当我按下(动作向下)按钮的“按下版本”显示良好,然后当我移开手指时,图形恢复正常(动作向上) 这部分工作很好,但我需要在用户按下按钮后,将ACTION_DOWN保持活动时间稍长一点,而不是快速返回ACTION_UP。我可以看到很多不同的人问这个问题,但没有关于编辑动作向上或动作向下部分的答案。我想一定有一些简单的方法来实现这个目标 当前代码: @Override public boolean onTouch(View

所以我花了很长时间想看看是否有解决办法。基本上,下面的代码允许我按下一个按钮,当我按下(动作向下)按钮的“按下版本”显示良好,然后当我移开手指时,图形恢复正常(动作向上)

这部分工作很好,但我需要在用户按下按钮后,将ACTION_DOWN保持活动时间稍长一点,而不是快速返回ACTION_UP。我可以看到很多不同的人问这个问题,但没有关于编辑动作向上或动作向下部分的答案。我想一定有一些简单的方法来实现这个目标

当前代码:

@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;
}
(此代码工作正常,但用户体验不好,因为按钮在释放后太快(立即)恢复到动作\u UP-我希望动作\u DOWN显示1)1-2秒,然后恢复到动作\u UP或2)保持动作\u DOWN,直到调用的事件完成-在这种情况下加载另一个屏幕)


谢谢大家!

为什么不试试ImageViewSelector呢?是的,我已经看过如何使用selector了,但它可能会很混乱,而且涉及到很多代码。我想知道在上面的代码中是否有更简单的方法来设置它-一个中心位置来更改按钮的所有位置等。也不确定在selector上显示定时的选项或者只是再次尝试selector,它将无法实现我想要的操作。在selector中设置pressed(按下)、selected(选中)和normal(正常)状态正是我已经做过的事情——我希望按钮的行为与当前的行为有所不同(请重新阅读我最初的帖子)。如果在一个xml文件中的同一个图形上设置多个状态,我可以获得更多的显示时间,但这只是因为android在处理它时遇到了麻烦,而不是一个好的解决方案。。