현재 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 의 속도개선방법을 논의하였으면 합니다.