Затем вы можете установить масштаб, имеющий среднюю точку в центре экрана:
ановил предварительно масштабированное растровое изображение в качестве источника ImageView. Тогда я прочитал МатрицуImageView
и сдвиг растрового изображения из ImageView черезmatrix.postTranslate(shiftX, shiftY)
.
Теперь я хочу увеличить / уменьшить изображение, сохраняя центрImageView
в той же точке растрового изображения, что была до масштабирования.
Если я попытаюсь увеличить изображение сmatrix.postScale(zoom, zoom)
, отметьте, что я хочу сохранить (синяя точка) смещения в другое место (фиолетовая точка).
Я пробовал несколько разных способов вернуть Bitmap обратно, но не могу заставить его работать правильно. Я знаю исходный размер растрового изображения, размер ImageView, расстояния, отмеченные пунктирной линией. Пытался рассчитать необходимый сдвиг и использоватьmatrix.postTranslate(-zoomshiftX, -zoomshiftY)
впоследствии, но это не смещается правильно.
Даже обнаружил, что количество пикселей в Bitmap не меняется после функции matrix.postScale () и пробовал matrix.postTranslate (-zoomshiftX / zoom, -zoomshiftY / zoom) - но все же не повезло.
Как мне добиться такого увеличения?