Android - Как увеличить / увеличить изображение по кругу?
Я пытаюсь позволить пользователю дотронуться до изображения, и тогда в основном появится круговая лупа, которая позволит пользователю лучше выбрать определенную область на изображении. Когда пользователь отпускает прикосновение, увеличенная часть исчезнет. Это используется в нескольких приложениях для редактирования фотографий, и я пытаюсь реализовать свою собственную версию. Приведенный ниже код увеличивает круговую часть изображения, но не удаляет и не очищает зум, когда я отпускаю палец. В настоящее время я устанавливаю растровое изображение на холст, используяcanvas = new Canvas(bitMap);
а затем установите вид изображения с помощьюtakenPhoto.setImageBitmap(bitMap);
Я не уверен, что пойду правильно. Код onTouch ниже:
zoomPos = new PointF(0,0);
takenPhoto.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
zoomPos.x = event.getX();
zoomPos.y = event.getY();
matrix.reset();
matrix.postScale(2f, 2f, zoomPos.x, zoomPos.y);
shader.setLocalMatrix(matrix);
canvas.drawCircle(zoomPos.x, zoomPos.y, 20, shaderPaint);
takenPhoto.invalidate();
break;
case MotionEvent.ACTION_MOVE:
zoomPos.x = event.getX();
zoomPos.y = event.getY();
matrix.reset();
matrix.postScale(2f, 2f, zoomPos.x, zoomPos.y);
canvas.drawCircle(zoomPos.x, zoomPos.y, 20, shaderPaint);
takenPhoto.invalidate();
break;
case MotionEvent.ACTION_UP:
//clear zoom here?
break;
case MotionEvent.ACTION_CANCEL:
break;
default:
break;
}
return true;
}
});