현재 View 위에서 Bitmap 객체를 그리고 있습니다.

모션이벤트를 통하여 Drag, Zoom in, out 을 구현하고 잇습니다.

Drag 는 잘 동작하는데, Zoom in, Zoom out 을 통한 이미지 확대, 축소의 버벅임이 있습니다.

 

Bitmap 객체는 selectImage 에 할당되며,

 

selectImage.setBitmap(resizedBitmap(selectImage.getOriginalBitmap(), scale)); 이런식으로 setBitmap 을 하며,

selectImage.getBitmap() 을 통해서 onDraw() 하게 됩니다.

 

/* resizedBitmap 함수 입니다. */

public Bitmap resizedBitmap(Bitmap bitmap, float scale) {
  
  Bitmap temp = bitmap;
  if(bitmap != null && scale != 0) {
   matrix.reset();
   matrix.postScale(scale, scale);
   
   try {
    Bitmap temp2 = Bitmap.createBitmap(temp, 0, 0, temp.getWidth(), temp.getHeight(), matrix, true);
    if(temp != temp2) {
     temp = temp2;
    }
   } catch(OutOfMemoryError e) {
    e.printStackTrace();
   }
  }
  
  return temp;
 }

 

Drag 시의 invalidate() 의 시간이 대략 평균 0.001 초 걸리는데,

Zoom in, out 시에는 대략 평균 0.025 초 걸리네요. (로그로 찍어본 시간입니다.)

ImageView 가 아닌 Bitmap 으로 작업중이구요, Zoom in, out 의 속도개선방법을 논의하였으면 합니다.