Разработка Android: масштабирование под разные устройства - PullRequest
1 голос
/ 01 августа 2011

Я создаю игру и использую SurfaceView. Я загружаю растровые изображения, которые представляют символ и фон и т. Д.

Но КАК правильно масштабировать его, чтобы оно подходило для больших устройств, небольших устройств и других устройств?

// Simon

ПРИМЕЧАНИЕ * dpi не работает, при использовании canvas только пиксели работают

Ответы [ 3 ]

1 голос
/ 01 августа 2011

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

На основе ответа @MitulNakum из этого quration выполните следующее:

//note that mdpi is the standard
float getAdjustedDimension(float value){
    DisplayMetrics metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    switch(metrics.densityDpi){
         case DisplayMetrics.DENSITY_LOW:
              //api 4 and higher
              return 0.75 * value;
         case DisplayMetrics.DENSITY_MEDIUM:
              //api 4 and higher
              return value;
         case DisplayMetrics.DENSITY_HIGH:
              //api 4 and higher
              return value * 1.25;
         case DisplayMetrics.DENSITY_XHIGH
              //api 9 and higher
              return value * 2;
         case DisplayMetrics.DENSITY_TV
              //api 13 and higher
              return value * 1.33125;
    }
}
1 голос
/ 01 августа 2011

Посмотрите на камеры AndEngine.Все, что вы ищете, можно найти там, и это с открытым исходным кодом!Я использовал этот движок для ряда игр и прототипов приложений.Это очень хорошо задокументировано.

AndEngine.org

Исходный код

0 голосов
/ 01 августа 2011

Способ, поддерживаемый android, заключается в создании нескольких изображений для каждого растрового изображения, которое вам нужно для вашего приложения различных размеров, и предоставлении приложению возможности решать, какой из них использовать для данной плотности экрана. Эти изображения помещаются в папки drawable-ldpi, drawable-hdpi и т. Д. Проверьте ссылку и прочитайте ее полностью: http://developer.android.com/guide/practices/screens_support.html

Не очень хорошо для памяти. (

...