Próbuję zezwolić użytkownikowi na dotknięcie obrazu, a następnie w zasadzie okrężna lupa pokaże, że pozwoli użytkownikowi lepiej wybrać określony obszar na obrazie. Kiedy użytkownik zwolni dotyk, powiększona część zniknie. Jest on używany w kilku aplikacjach do edycji zdjęć i próbuję implementować moją własną wersję. Kod, który mam poniżej, powiększa okrągłą część obrazu, ale nie usuwa ani nie usuwa powiększenia po zwolnieniu palca. Aktualnie ustawiam mapę bitową na płótnie przy użyciu canvas = new Canvas(bitMap);
, a następnie ustawię obraz przy użyciu takenPhoto.setImageBitmap(bitMap);
Nie jestem pewien, czy robię to we właściwy sposób. Kod onTouch znajduje się poniżej:Android - Jak powiększać/powiększać część obrazu na okrągło?
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;
}
});
ja nie wiem, czy to dobrze rozumiem, ale pytasz jak wyczyścić efekt powiększenia na obrazie? Dlaczego nie zapisać oryginalnego obrazu w oddzielnej bitmapie. Gdy użytkownik używa zoomu i nadszedł czas, aby pozbyć się efektu lupy, użyj oryginalnej bitmapy i ponownie narysuj ją na płótnie, a tym samym usuń obraz za pomocą zoomu. –
Nie Nie otrzymuję okręgu powiększającego nad widokiem obrazu. czy mógłbyś podzielić się czymś więcej lub klasą, gdzie działa kod? –
Mam również potrzebę powiększania obrazu w przezroczystej ramce nakładki, która znajduje się w środku galerii, dzięki czemu zawsze obraz przechodzi przez to, co jest powiększane, sugeruj – Ravi