У меня есть изображение размером 1024x768, где горячие точки отображаются для работы на 10-дюймовом планшете, но когда я запускаю свое приложение на Kindle Fire, размер изображения уменьшается, а горячие точки не работают. Есть ли какая-либо формула для отображения координат на меньшем изображения будет отображаться с большим изображением?Отображение горячей точки Android ImageView
0
A
ответ
1
вы не даете достаточно подробно, чтобы обеспечить точный ответ.
- Что вы используете для отображения изображения? ImageView?
- Является ли изображение масштабированным/обрезанным для поддержания пропорции?
- Вы получаете X и Y в прилавке слушателя?
- Являются ли ваши горячие точки реалистичными с помощью какого-либо тестера с ударом, сравнивающего касание X, Y с определениями горячей точки?
Предполагая, что ImageView и прослушиватель прикосновений получают X и Y, тогда вам нужно масштабировать горячие точки до любого разрешения, на котором отображается ваше изображение. Я сделал это недавно, расширив класс ImageView и переопределив обратный вызов onMeasure(). В onMeasure определите, является ли изображение ландшафтом или портретом, затем вычислите масштабный коэффициент между собственным размером изображения (размер, для которого вы указали горячие точки) и размер дисплея.
Что-то вроде этого:
if (this.getWidth() > this.getHeight()) {
scaleFactor = ((float)this.getWidth()/(float)this.originalBitmapWidth);
} else {
scaleFactor = ((float)this.getHeight()/(float)this.originalBitmapHeight);
}
for (Hotspot hotspot : hotspots){
hotspot.setScale(scaleFactor);
}
Смежные вопросы
- 1. Android: Измените адрес шлюза горячей точки
- 2. Android - Отображение изображения в ImageView
- 3. Проверка подключения Wi-Fi горячей точки с Android без пинга
- 4. Android: Получение точки касания на ImageView
- 5. Draw точки на Панорамирование ImageView в Android
- 6. Отображение части спрайта в Android ImageView
- 7. Захват изображения и отображение в ImageView - Android
- 8. Android: отображение изображения через изображение в ImageView
- 9. Отображение загруженного изображения в imageView
- 10. Отображение изображения в ImageView
- 11. Отображение анимации поверх ImageView
- 12. Отображение/скрытие ImageView в RelativeLayout
- 13. Отображение обрезанного изображения на ImageView
- 14. ImageView over ImageView в Android
- 15. Lay ImageView поверх ImageView Android
- 16. Отображение точки над изображением
- 17. Android Imageview
- 18. Перемещение точки (xx, yy) на ImageView относительно масштабирования изображения ImageView
- 19. Android: Отображение .jpg image from sdcard using ImageView
- 20. отображение изображения из базы данных в android show в imageview
- 21. Android: Обрезка изображения и отображение его на ImageView
- 22. Отладка горячей замены с помощью Android
- 23. Отображение GIF в ImageView с использованием Glide
- 24. Отображение TextView ниже ImageView в Gridview
- 25. Ошибка Отображение точки на картах
- 26. GridLayout прямо на ImageView - android
- 27. Android listview imageview frustration
- 28. Перемещение точки центра ImageView в нужное время
- 29. Отображение изображений в android?
- 30. Отображение десятичной точки в Java
1. Я использую ImageView для отображения изображения. – Nick
OK. Предположим, что ваше приложение работает на устройстве с разрешением 512x384. Ваше изображение будет отображаться в половине его собственного разрешения (при условии полного экрана). Таким образом, пятно на 100 100 должно быть увеличено до 50,50. Поскольку ширина больше высоты, ваш масштабный коэффициент отображается шириной (измеряется в onMeasure), деленной на исходную ширину = 512/1204 = 0,5. Увеличьте свою горячую точку на 100 100 на 0,5, чтобы получить 50,50. Хорошее решение будет измерять собственный размер растрового изображения, чтобы быть полностью повторно используемым, а не предполагать, и жесткий код, 1024x768. – Simon