Android: определение координат видимой области при масштабировании - PullRequest
2 голосов
/ 02 февраля 2011

У меня есть приложение, которое позволяет пользователю увеличивать масштаб для более детального просмотра пользовательского представления с помощью ScaleGestureDetector.

Что я хотел бы сделать, так это показать пользователю уменьшенное изображение большого экрана при увеличении. Я хотел бы отобразить уменьшенное изображение, прикрепленное к левому нижнему углу видимой области просмотра, так, чтобы пользователь масштабируется, миниатюра остается видимой.

Моя проблема в том, что, хотя я могу определить, когда мне следует показывать миниатюру в методе onDraw () моего View, я не могу понять, как закрепить фигуру, которую я хочу нарисовать (полупрозрачный Rect) в видимый угол. Нет проблем вывести его на холст, используя абсолютные координаты, но как только я увеличу масштаб, он останется в абсолютном углу.

Я отслеживаю текущий коэффициент масштабирования, а также центр масштабирования (x, y), поэтому я, вероятно, мог бы сделать некоторые вычисления, относящиеся к известному размеру окна и этим значениям, чтобы определить угол, но просто задаюсь вопросом, есть ли любые процедуры или лучшие способы справиться с этим.

Спасибо за любую информацию,

Пол

1 Ответ

4 голосов
/ 07 февраля 2011

Разобрался, как получить размеры видимой в данный момент области при масштабировании холста;вызов canvas.getClipBounds ();в моем onDraw дал мне Rect, представляющий «обрезанный» холст.Из этого я смог получить доступ к .top, .left, bottom .right и определить, где найти миниатюру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...