Проблема с позицией объектов на разных разрешениях - PullRequest
0 голосов
/ 17 февраля 2010

Положение
Проект Flex, экспортированный как проектор, показывает полноэкранный режим. У проекта есть фон и несколько точек, каждая из которых представляет «Местоположение». Эти местоположения извлекаются из файла XML, и их положение задается в процентах. Местоположение в пикселях рассчитывается (это работает как должно) по ширине и высоте приложения. Точки расположены правильно.

Фон представляет собой JPG с разрешением 1280 * 1024. В этот момент фон установлен на Canvas с backgroundSize = auto. Это помещает изображение в центр, не растягивая его. Растяжение приводит к уродливым пиксельным изображениям и разрывает пропорции.

Задача
Когда мы смотрим на проект в двух разных разрешениях (1 = 1280 * 1024; 2 = 1024 * 768), точки находятся в хорошем положении, фоновое изображение четкое. Но из-за того, что фон имеет то же разрешение, что и 1, фон не отображается полностью в разрешении 2 (поскольку он не растянут. Логический результат.

Вот почему я попытался растянуть фон. Результаты:
Точки, расположенные в правильном направлении http://i733.photobucket.com/albums/ww336/winkelman66/example1.jpg

В меньшем / другом разрешении:
альтернативный текст http://i733.photobucket.com/albums/ww336/winkelman66/example2.jpg

Решение
Как мне решить эту проблему? Я думал о том, чтобы фон всегда был в центре снизу, оставляя пропорции такими, какие они есть. Это не вариант из-за отсутствия деталей / частей изображения. Растяжение приводит к уродливым пиксельным изображениям, которые не пропорциональны.
Я знаю, что растяжение может быть единственным вариантом решения проблемы разрешения без потери частей изображения, но как я могу решить проблему, когда точки не находятся в хорошем положении (как показано на рисунке 2).

Ответы [ 2 ]

1 голос
/ 17 февраля 2010

Не знаю, если это именно то, что вы имеете в виду, но я попробую: P

  1. Получить исходный размер фона
  2. Получить размер растянутого фона
  3. рассчитать разницу в ширине и высоте
  4. Отразить разницу по точкам позиции
0 голосов
/ 17 февраля 2010

Большая проблема, простое решение (после рабочего времени на этом). Мы просто забыли одну простую вещь в наших вычислениях: отразите размер (ширину / высоту) точек в позиции ...

Так что, если вы столкнулись с той же проблемой при расчете местоположения в пикселях по процентам, не забудьте включить в свои расчеты (viewToBePositioned.width / 2): -)

...