2013-03-21 1 views
2

Я использую технику мульти разрешения номер три, как написано в этом articleScaling для Android устройств с скворцом, вызывая некоторую раскладку вопросы

и определить масштабный коэффициент и размер сцены, я использую этот кусок коды первоначально написанное Jeff:

 if (Capabilities.screenDPI >= 200) { 
      if (Capabilities.screenDPI >= 280) { 
       AssetFactory.contentScaleFactor = 2; 
      } 
      else { 
       AssetFactory.contentScaleFactor = 1.5; 
      } 
     } 
     else { 
      AssetFactory.contentScaleFactor = 1; 
     } 

     var mViewPort:Rectangle = new Rectangle(0, 0, stage.fullScreenWidth, stage.fullScreenHeight); 

     mStarling = new Starling(Startup, stage,mViewPort); 
     mStarling.stage.stageWidth = stage.fullScreenWidth/AssetFactory.contentScaleFactor; 
     mStarling.stage.stageHeight = stage.fullScreenHeight/AssetFactory.contentScaleFactor; 

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

Итак, у меня есть фон, который я растягиваю на ширину и размер сцены. Этот метод отлично работает, когда я тестирую большинство устройств, но у нас есть устройства, такие как Barnes и Noble Nook Color.

Устройство имеет разрешение 600x1024 с разрешением 170 точек на дюйм. Это означает, что он собирается выбрать самые маленькие активы (320x480) и увеличить его до 600x1024. Какой из этих событий является pixalated. Любые идеи о том, как преодолеть эту проблему?

Я также прилагаю тестовое приложение, которое показывает проблему подробно https://dl.dropbox.com/u/2192209/scaling%20test.zip

ответ

1

Как о настройке максимального размера масштаба? Если вывод вышеприведенных расчетов приведет к масштабированию, превышающему 2, используйте более крупные активы для уменьшения коэффициента масштабирования.

В вашем расчете учитывается только экранное разрешение экрана, попробуйте комбинировать их с разрешением экрана.

2

Что сработало для меня лучше всего пока не масштабирует видовое окно Старлинг. Он всегда должен оставаться базовым размером (320x480).

Тогда у вас есть масштабный коэффициент о том, насколько большой должна быть текстура. Это встроенная функция Starling при создании текстуры - передача масштабного коэффициента. Это означает, что если ваш этап 640x960, ваш коэффициент масштабирования будет равен 2. Ваше изображение (объект Bitmap) будет иметь размер ACTUAL SCREEN 320x480 (полноэкранный режим, 1: 1 с размером сцены), НО его текстура (загруженный актив BitmapData) будет в два раза больше (640x960, 1: 1 с размером телефона).

Для облегчения понимания - этап Starling (320x480) будет масштабироваться в соответствии с разрешением вашего телефона (320 -> 640). Но ваши изображения будут уменьшены до уровня, необходимого для сцены (640 -> 320). Таким образом, вы получаете совершенно нормальные изображения.

Это помогает поддерживать фиксированный размер сцены. Это очень полезно, потому что в противном случае было бы трудно позиционировать объекты - если вы хотите, чтобы объект находился посередине, иногда это было 160, иногда 320 и т. Д. Это означает, что вам всегда нужно устанавливать положение/размер с помощью вычислений, перегрузки.

Надеюсь, что это поможет!

Редактировать: Только что вспомнил сайт, который я использовал для определения моих основных размеров и коэффициентов активов: http://screensiz.es/phone

Смежные вопросы