0

以下に ScaleGestureDetector があり、adpater notifyDataSetChanged を呼び出した後、onScale イベントを検出してビューのサイズをリアルタイムで変更できます。ただし、私の見方は複雑なので遅いです。ビューの一時画像をキャプチャし、画像のサイズを変更してユーザーに効果を表示し、最終的に onScaleEnd が発生したときに実際の最終的なビュー データを変更する方法はありますか?

どうもありがとう

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.3.7_r1/android/view/ScaleGestureDetector.java#ScaleGestureDetector.OnScaleGestureListener

4

1 に答える 1

0

私は次のことでこれを達成します

  1. ビットマップを保存する

    this.setDrawingCacheEnabled(true);

    ivSnapShotBitmap = Bitmap.createBitmap(this.getDrawingCache());

    this.setDrawingCacheEnabled(false);

  2. onDraw(キャンバス キャンバス)

    canvas.drawBitmap(ivSnapShotBitmap, 0, 0, null);

    canvas.scale(ivScaleFactor, ivScaleFactor);

    super.onDraw(キャンバス);

ビュー自体が scale(x,y) をサポートしていないため、マルチタッチ ズームのタイプ 10 以下の API レベルをサポートできます。

この問題の 1 つは、ビューが縮小されている場合です。右と下の空きスペースには元の背景が表示されます。まだ修正する方法を見つけています。

于 2013-01-01T15:58:52.407 に答える