0

我尝试通过 2 种方式在 android 上实现拖动:

  1. 画布上绘制。
  2. 触摸时具有边距变化的相对布局。

即使在强大的设备上,它也不够流畅。

我怎样才能使拖动更快?

4

2 回答 2

1

最简单的方法(也是响应速度最快的)是在视图中处理触摸,当您处理 a 时MotionEvent.ACTION_MOVE,只需View从事件的原始坐标设置您的 'sx 和 y 点并调用view.invalidate().

于 2012-06-25T16:25:51.607 回答
0

如果您需要更高性能的替代方法来简单地调用invalidate()和重绘视图内容,请使用 aSurfaceView为您提供可以从任何线程绘制的绘图表面。您仍然Canvas可以使用,您只需获得访问权限并使用以下代码随时使用它:

SurfaceView mSurface; //In your view hierarchy
SurfaceHolder = mSurface.getHolder();
Canvas c = mHolder.lockCanvas();

c.drawBitmap(...);
c.drawColor(...);
//...etc...etc...

mHolder.unlockCanvasAndPost(c);

而不是等待draw()调用您的视图。正如我所提到的,由于您获得了对 的锁定Canvas,因此可以在后台线程上完成此绘图。

高温高压

于 2012-06-25T16:34:55.940 回答