Как я могу определить фактическое положение изображения внутри ImageView? - PullRequest
1 голос
/ 04 сентября 2011

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

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

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

Я подумал, что мне просто нужно вызвать методы ImageView, такие как "getImageLeft ()", "getImageTop ()" и т. Д., Но таких методов нет !!

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

Кто-нибудь может дать мне подсказку ??

Спасибо!

1 Ответ

0 голосов
/ 04 сентября 2011

Используйте прокладки. Они определяют смещение внутри вида. Существует также атрибут scaleType, который определяет, как следует масштабировать изображение, если его размер не совпадает с размером imageView. Если вы хотите знать, как масштабируется изображение внутри и imageView, я могу сказать, что пропорции сохраняются. Например, у вас есть изображение 200x50 и ImageView 100x100. Тогда размер изображения в imageView должен быть 100x25. После масштабирования изображение по умолчанию помещается в центр ImageView. Таким образом, у вас есть около 12 дополнительных мест сверху и снизу.

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