我希望能够以平滑的方式水平拖动视图。我使用以下代码
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
{
\\setup before dragging
}
break;
case MotionEvent.ACTION_MOVE:
{
v.setX((dx += speedFactor));
}
break;
case MotionEvent.ACTION_UP:
{
\\setup after dragging
}
return true;
}
return true;
}
当我使用小型speedFactore< 10动画很流畅但视图移动速度很慢。当我增加它时它不会像我希望的那样顺畅地移动。
如何拖动非常平滑,快一点?
答案 0 :(得分:2)
通常,您没有常数" speedFactor"因为拖动意味着您希望手指下方的视图,所以它的移动速度与手指一样快。
您可以在开始时存储初始触摸位置(ACTION_DOWN),并根据ACTION_MOVE事件期间当前和初始位置的差异更改视图的位置。
移动的平稳程度取决于设备的计算能力等。