2013-05-21 35 views
0

是否可以動態設置縱向模式和橫向模式? 例如,我需要應用風景和肖像模式可行大MDPI,HDPI大和XLARGE如何根據設備動態設置方向?

對於其他決議,如正常的華電國際,華電國際正常等,我只需要縱向模式。

任何人都可以幫助我嗎?

+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.