2012-05-21 26 views
2

嘿我需要在我的應用程序中縮放位圖,但縮放工作速度太慢,有時我會在相反的方向上獲得這些隨機縮放事件。這裏是我的OnDraw方法:如何在android中加速縮放

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; 
    } 

謝謝。

回答

1

該問題在縮放中不實際。您在onDraw方法中訪問光盤(BitmapFactory.decodeResource) - 這的確很慢。

移動下面的代碼構造函數:

mBitmap = BitmapFactory.decodeResource(getResources(), 
      R.drawable.ucsbmap);