2012-02-27 2 views
1

Мне нужны ресурсы для разных разрешений, например 320x480, 800x480, 854x480, 800x600 1024x600, 1024x768, 1024x800. Это игра, и масштабирование растровых изображений неприемлемо, потому что они очень чувствительны к нему. не зависящие от времени папки и комбинация с размерами экрана (которые устарели, но не имеют другого способа установить возможность рисования для больших экранов с одинаковым разрешением и разным разрешением) не являются enaugh. Как отличить графику для 1024x600 и 1024x768?Отдельная графика для разных разрешений, android

Очень печально прекратить использование механизма автоматического сбора ресурсов и перехода на ручную загрузку из активов. любые идеи?

+0

вы можете получить разрешение во время выполнения и иметь другую именованную графику. таким образом вы можете вызывать правильную графику для любого разрешения, которое пользователь выполняет. –

+0

это обходной путь, а не решение. Мне нужна только разная графика для разных разрешений, но с тем же макетом, например set background = "@ drawable/background", но разные имена нарушают эту схему. :( – SaTom

ответ

1

Я обычно используя 4 папки ресурсов для вводимого коэффициента:

  1. вытяжки-MDPI для 320x480
  2. вытяжки-ИПЧРА для 480x800 и 480x854
  3. вытяжки-большого-ИПЧРА для 600x1024, 768x1024 и так на
  4. вытяжке-XLarge-MDPI для 800x1280

это достаточно просто, на мой взгляд. Кроме того, вам не нужно беспокоиться о разных ресурсах, например, с размерами экрана 800x480 и 854x480: вы можете указать смещение по краям экрана, равное 27 пикселям, и центрировать игру на экране. Надеюсь это поможет.

+0

с разрешением 1024xXXX много проблем, из которых половина из них распознается как mdpi, а некоторые из них - hdpi, теперь я использую drawable-large-nodpi и xlarge-nodpi, но не имеет возможности выбрать более точное разрешение. – SaTom

+1

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

+0

Резолюции, которые я указал на обложку около 95% целевой платформы, мне не нужно поддерживать все разрешения. – SaTom

1

Если вы хотите пиксель идеально подходит, вы всегда можете загрузить фон во время выполнения с помощью простого метода:

private void setBackgroundImage() { 
    DisplayMetrics dm = getResources().getDisplayMetrics(); 
    int screenWidth = dm.widthPixels; 
    int screenHeight = dm.heightPixels; 

    // TODO: Conditional Structure to apply the right drawable 
    // ressource to be applied in the background 

} 

После того, как вы приобрели разрешение дисплея можно применить соответствующий фон ПОСРЕДСТВОМ setBackgroundDrawable метод.

+0

Я знаю этот вариант , но было так хорошо сделать ui полностью независимым от логики. Но с этим взломом я также потеряю предварительный просмотр макета в eclipse, как правило, пишу xml в редакторе xml, но предварительный просмотр помогает в создании ui. – SaTom

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