2

アプリケーションでビットマップをスケーリングする必要がありますが、スケーリングの動作が遅すぎて、これらのランダムなスケーリング イベントが反対方向に発生することがあります。これが私のondrawメソッドです:

public void onDraw(Canvas canvas) {
        mBitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.ucsbmap);
        canvas.drawBitmap(mBitmap, matrix, mPaint);    
}

および onScale メソッド (ビットマップのスケーリングを処理する SimpleOnScaleGestureListener の一部)

     public boolean onScale(ScaleGestureDetector detector) {      
          float scaleFactor = detector.getScaleFactor();
          float x = detector.getFocusX();
          float y = detector.getFocusY();
          matrix.setScale(scaleFactor, scaleFactor, x, y);
          repaint();
          return true;
     }

ありがとうございました。

4

1 に答える 1

1

スケーリングでは実際の問題ではありません。BitmapFactory.decodeResourceメソッドでディスク ( ) にアクセスすると、onDrawアクションが非常に遅くなります。

次のコードをコンストラクターに移動します。

mBitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.ucsbmap);
于 2013-03-21T12:31:12.600 に答える