Używam biblioteki PhotoView do wykonania powiększania Android
ImageView
. Zoomowanie działa dobrze.PhotoViewAttacher usuwa obraz Wyświetlenie granicy i powiększenia
Jestem ustawienie obrazu z low-quality
w ImageView
a następnie uruchomić, aby pobrać nowy obraz z hight-quality
która zastąpi low-quality
obraz.
Jeśli użytkownik powiększa w low-quality
obrazu - w high-quality
obraz zastępuje istniejący obraz, a poziom zoom ściąga :(
Jak mogę zapisać poziom powiększenia po załadowaniu high-quality
obraz
ja”? ve próbowano uzyskać zdjęcie Matrix
z PhotoViewAttacher
w low-quality
i ustawić je na high-quality image
, ale to nie działa - poziom powiększenia obrazu i granice nie są takie same jak wcześniej. Obraz high-quality
zastąpił obraz low-quality
w ImageView
.
Matrix matrix;
imageView.setImageBitmap(imageBitmap);
...
PhotoViewAttacher mAttacher = new PhotoViewAttacher(imageView);
// save the matrix before any modifications
matrix = mAttacher.getDisplayMatrix();
mAttacher.setOnMatrixChangeListener(new OnMatrixChangedListener() {
@Override
public void onMatrixChanged(RectF rect) {
// update the matrix
matrix = mAttacher.getDisplayMatrix();
}
});
imageProvider.load(getActivity(), imageView, imageUrl, progressBarView, imageConfig, new ImageCallback() {
@Override
public void onSuccess(ImageView imageView) {
// update image in ImageView
// probably the problem is in this .update() call
// but I don't get what's the exact problem
mAttacher.update();
// restore high-quality image matrix
mAttacher.setDisplayMatrix(matrix);
}
@Override
public void onError(ImageView imageView) {
}
});
Edit: Obrazy mają różne wymiary.
Nigdy nie korzystałem z tej biblioteki, ale w celu obejścia problemu można nazywać 'mAttacher.setZoomable (false)', aby wyłączyć funkcje powiększania podczas wyświetlania obrazu niskiej jakości, a następnie włączyć go po uzyskaniu wysokiej jakości obrazu jest pokazane. – woot
to dobre rozwiązanie i będzie działać. Ale muszę udostępnić użytkownikowi funkcje powiększania, jest to wymóg :( –