Я использую руководство Google, чтобы реализовать возможности масштабирования на моем холсте. Я рисую несколько элементов на холсте и могу перемещать их с помощью Canvas.translate(dx,dy)
вместе с элементами. Чтобы я мог определить, были ли затронуты эти элементы после перевода холста, я беру смещение холста, используемое для Canvas.translate(dx,dy)
, и вычитаю позицию касания. Как только я ввожу масштабирование в изображение, это становится немного сложнее. Если я использую Canvas.scale(sx,sy)
и делаю (touchX-offsetX)/scaleFactor
, перевод положения касания после того, как шкала работает идеально. Однако, если включить опорную позицию Canvas.scale(sx,sy,px,py)
, код выше не работает. Как я могу учитывать положение поворота как часть моего сенсорного перевода? Я установил свою точку поворота, выполнив следующие действия:
public boolean onScaleBegin(ScaleGestureDetector detector) {
mScaleX = detector.getFocusX();
mScaleY = detector.getFocusY();
return true;
}
Любая помощь будет принята с благодарностью.