Я использую стикер в github https://github.com/wuapnjie/StickerView/
- Я ожидаю, что на этом рисунке 1, после поворота / перемещения / масштабирования стикера на области изображения (по ширине / высоте изображения) я сохранил матрицустикер (для сохранения позиции)
- На рисунке 2 я ввел стикер с позицией (на основе сохраненной матрицы на рисунке 1). Рисунок 2 имеет полный экран ландшафтного устройства. Я делаю логику для обработки масштаба, как это
protected void setStickerPosition2(@NonNull Sticker sticker, float x, float y) {
float width = getWidth();
float height = getHeight();
sticker.getMatrix().postTranslate(x, y);
float scaleFactor, widthScaleFactor, heightScaleFactor;
widthScaleFactor = (float) getWidth() / sticker.getDrawable().getIntrinsicWidth();
heightScaleFactor = (float) getHeight() / sticker.getDrawable().getIntrinsicHeight();
scaleFactor = widthScaleFactor > heightScaleFactor ? heightScaleFactor : widthScaleFactor;
sticker.getMatrix()
.postScale(scaleFactor / 2, scaleFactor / 2, getWidth() / 2, getHeight() / 2);
}
Моя проблема - наклейка на картинке, если она основана на сохраненной матрице. Она должна быть в центре экрана, но это не так. Я понял, что мой расчет масштаба по методу выше был не правильно. Пожалуйста, помогите мне правильно получить матрицу
Примечание: если я жестко закодировал наклейку по центру, моя матрица будет Матрица {[1.7085714, 0.0, 598.0] [0.0, 1.7085714, 570.5] [0.0, 0.0, 1.0]}
введите описание изображения здесь