2013-05-21 4 views
0

Можно ли динамически настраивать портретный режим и режим ландшафта? Например, мне нужно сделать приложение работоспособным в ландшафтном и портретном режимах для больших MDPI, Large HDPI и для XlargeКак настроить ориентацию динамически на основе устройств?

Для других разрешений, таких как нормальный hdpi, обычный hdpi и другие, мне нужен только портретный режим.

Может ли кто-нибудь помочь мне в этом?

+0

это возможно? ** да ** –

+0

Я думаю, вы в замешательстве - фреймворк Android автоматически определяет режим и загружает правильные ресурсы. Вам нужно только перегрузить ресурсы, если вы хотите, чтобы они выглядели по-разному в определенной разрешающей способности/ориентации –

ответ

0

Вы можете динамически изменять ориентацию, как это:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 

и

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

Вы можете проверить плотность с экрана:

switch (getResources().getDisplayMetrics().densityDpi) { 
case DisplayMetrics.DENSITY_LOW: 
    // ... 
    break; 
case DisplayMetrics.DENSITY_MEDIUM: 
    // ... 
    break; 
case DisplayMetrics.DENSITY_HIGH: 
    // ... 
    break; 
case DisplayMetrics.DENSITY_XHIGH: 
    // ... 
    break; 
} 
1

Да, можно заставить такие вещи. Вы можете определить плотность устройства, и вы можете загрузить соответствующий XML-файл.

Вы можете обнаружить плотность, глядя на метриках отображения:

DisplayMetrics metrics = getResources().getDisplayMetrics(); 

затем смотрит на metrics.densityDpi. Затем вы можете загрузить различные ресурсы.

int layoutId; 
switch(metrics.densityDpi) { 
case DisplayMetrics.DENSITY_LOW: 
    layoutId = R.layout.lowthingy 
      break; 
case DisplayMetrics.DENSITY_MEDIUM: 
    layoutd = R.layout.mediumthingy 
      break; 
... (for other densities) 
} 
setContentView(layoutID); 

НО только потому, что вы можете это сделать, это не значит, что вам следует. И я действительно думаю, что это не лучший подход. Я действительно думаю, что вы должны read this documentation.

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