如何在 android 中平滑地拖动视图
How to drag a view smoothly in android
我希望能够平滑地水平拖动视图。我使用下面的代码
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 时,动画很流畅,但视图移动非常缓慢。当我增加它时,它不会像我希望的那样平滑移动。
如何拖的很顺滑,又快一点?
通常情况下,您没有常量"speedFactor",因为拖动意味着您希望视图在您的手指下,因此它的移动速度与您的手指一样快。
您在开始时存储初始触摸位置(ACTION_DOWN),并在ACTION_MOVE-events期间根据当前位置和初始位置的差异更改视图的位置。
移动的流畅程度取决于设备的计算能力等因素。
我希望能够平滑地水平拖动视图。我使用下面的代码
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 时,动画很流畅,但视图移动非常缓慢。当我增加它时,它不会像我希望的那样平滑移动。
如何拖的很顺滑,又快一点?
通常情况下,您没有常量"speedFactor",因为拖动意味着您希望视图在您的手指下,因此它的移动速度与您的手指一样快。
您在开始时存储初始触摸位置(ACTION_DOWN),并在ACTION_MOVE-events期间根据当前位置和初始位置的差异更改视图的位置。
移动的流畅程度取决于设备的计算能力等因素。