2011-04-06 77 views
0

運行不同的代碼在Android文件:「支持多屏」谷歌介紹瞭如何使用不同的佈局方案針對不同屏幕尺寸:安卓:自動爲不同的屏幕尺寸

res/layout/my_layout.xml 
res/layout-small/my_layout.xml 
res/layout-large/my_layout.xml 
res/layout-large-land/my_layout.xml 
res/layout-xlarge/my_layout.xml 
... 

的問題是,每一個佈局達到相同的代碼:在'onCreate'我正在使用:
setContentView(R.layout.my_layout);當然,根據屏幕大小調用正確的佈局(xml)。
我想要的是,xlarge和小屏幕將有非常不同的佈局,在這種情況下,Java代碼將會非常不同。我的問題是如何區分代碼中的這些情況?我必須使用一些if/else或android可以自動執行嗎?

回答

2

我的問題是如何區分代碼中的這些情況?我必須使用一些if/else或android可以自動執行嗎?

你將不得不「使用一些的if/else」,像這樣:

if (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_LARGE)==Configuration.SCREENLAYOUT_SIZE_LARGE) { 
    // yes, we are large 
} 
else { 
    // no, we are not 
} 
+0

我希望有掛鉤代碼的Android選擇佈局的方式更快的方法。最簡單的方法似乎是在每個ID中添加一個唯一的ID。 – 2011-04-06 23:26:28

0

我想抽屜式導航欄上較小的屏幕尺寸上推出打開並保持在平板電腦上關閉了發射。

這是我結束了代碼:

if(getResources().getConfiguration().smallestScreenWidthDp < 600){ 
      //Open the navigation drawer automatically 
      ((DrawerLayout) findViewById(R.id.drawer_layout)).openDrawer(GravityCompat.START); 
     }else{ 
      //Don't do anything 
     }