私は2つの方法でAndroidにドラッグを実装しようとしました:
- ドロー付きのキャンバス。
- 余白のある相対的なレイアウトは、タッチすると変化します。
強力なデバイスでも、十分にスムーズではありません。
ドラッグを高速化するにはどうすればよいですか?
私は2つの方法でAndroidにドラッグを実装しようとしました:
強力なデバイスでも、十分にスムーズではありません。
ドラッグを高速化するにはどうすればよいですか?
MotionEvent.ACTION_MOVE
最も簡単な (そして最も反応の良い) 方法は、ビューでタッチを処理することView
ですview.invalidate()
。
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