Я использую PhotoView библиотеку для реализации масштабирования Android ImageView. Масштабирование работает отлично.
Я устанавливаю изображение с low-quality в ImageView, а затем загружаю новое изображение с помощью hight-quality, которое заменит образ low-quality.
Если пользователь увеличивает изображение low-quality - изображение high-quality заменяет существующее изображение, а уровень масштабирования очищается: (
Как сохранить уровень масштабирования после загрузки изображения high-quality?
Я попытался получить изображение Matrix из PhotoViewAttacher в low-quality и установить его в high-quality image, но он не работает - уровень и границы масштабирования изображения не совпадают с они были раньше. Изображение high-quality заменило образ low-quality в 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 the exact problem
mAttacher.update();
// restore high-quality image matrix
mAttacher.setDisplayMatrix(matrix);
}
@Override
public void onError(ImageView imageView) {
}
});
Изменить: Изображения имеют разные размеры.