2012-06-01 2 views
0

Мне нужно использовать определенные xml-макеты на основе разрешения экрана, не размер. Итак, первая конструкция используется для разрешения < = 480x800, а вторая - для разрешения> 480x800.Предоставление уникального макета для определенного разрешения в Android 2.3.3

Как это сделать?

обновление.

Я придумал

Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
    final int height = display.getHeight(); 
    final int width = display.getWidth(); 



    int leadingResolutionSize = Math.max(height, width); 
    if(leadingResolutionSize <= 800){ 
     setContentView(R.layout.main); 
    }else if(leadingResolutionSize > 800 && leadingResolutionSize <= 1024){ 
     setContentView(R.layout.main_1024_600); 
    }else if(leadingResolutionSize > 1024){ 
     setContentView(R.layout.main_1280_800); 
    } 

Как вы думаете, что это хорошее решение?

ответ

1

вы можете создавать различные схемы XML

и поставить все они в

  • ИПЧР
  • idpi
  • MDPI
  • xhdpi

подробнее см this ANSW er

+0

Это не работает для меня (Android 2.3.3). У меня есть/res/layout-hdpi,/res/layout-xhdpi,/res/layout-xlarge. Для всех трех AVD, которые я создал (480x800, 1024x600, 1280x800), я получаю макет из/res/layout-hdpi. Можете ли вы опубликовать образец проекта? Еще одна вещь, которую я нашел выше (magager) - стоит ли попробовать? Он точно определяет каждую резолюцию, поэтому я могу, по крайней мере, «если» между макетами – user1384991

0

папка в вашем проекте содержит файлы xml, которые можно настроить по умолчанию для PORTRAIT Режим (то есть 480 * 800 в вашем случае). Если вы хотите для LANDSCAPE Mode. Точно так же объявите другую папку с именем layout-land (это 800 * 480) и сохраните XML-файлы макета в этой папке и измените эти файлы на основе вашего требования.

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