0

私は2つの方法でAndroidにドラッグを実装しようとしました:

  1. ドロー付きのキャンバス。
  2. 余白のある相対的なレイアウトは、タッチすると変化します。

強力なデバイスでも、十分にスムーズではありません。

ドラッグを高速化するにはどうすればよいですか?

4

2 に答える 2

1

MotionEvent.ACTION_MOVE最も簡単な (そして最も反応の良い) 方法は、ビューでタッチを処理することViewですview.invalidate()

于 2012-06-25T16:25:51.607 に答える
0

invalidate()ビューのコンテンツを単に呼び出して再描画するよりもパフォーマンスの高い代替手段が必要な場合はSurfaceView、任意のスレッドから描画できる描画面を提供する を使用してください。次のようなコードを使用して、好きなときにアクセスして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、この描画はバックグラウンド スレッドで実行できます。

HTH

于 2012-06-25T16:34:55.940 に答える