2013-02-20 198 views
0

我爲不同的佈局創建了四個文件夾,以使我的應用程序支持所有屏幕。四個文件夾,即我創建的佈局(默認),佈局大,佈局小,佈局大xlarge。在他們所有人中,我已經把一個名爲「activity_start.xml」的xml文件。現在,我想以編程方式設置佈局,我startActivity.java使用下面的代碼:以編程方式設置佈局

DisplayMetrics displayMetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 

    switch(displayMetrics.densityDpi) 
    { 
     case DisplayMetrics.DENSITY_LOW: 

      // layout for small sized devices. 

      break; 

     case DisplayMetrics.DENSITY_MEDIUM: 

      // layout for medium-sized devices. 
      setContentView(R.layout.activity_start); 
      break; 

     case DisplayMetrics.DENSITY_HIGH: 

      // layout for big-sized devices. 
      setContentView(R.layout-large.activity_start);//<----------- syntax error in this line 
      break; 
    } 
DisplayMetrics.DENSITY_MEDIUM的情況下

現在,代碼是正確的(我猜的),但是當我做的setContentView對於DisplayMetrics.DENSITY_HIGH它不需要我創建的文件夾(佈局大)。

我的意思是,當我們輸入setContentView的參數時,輸入R.lay ...(點擊ctrl +空格),它不會顯示文件夾「layout-large」。

我想以編程方式設置佈局。如果有人能幫助我,請。

回答

1

你有這完全錯誤的。具有合格文件夾名稱的要點是避免必須以編程方式完全處理它。 Android會自動處理它。此外,密度不等於屏幕尺寸,因此嘗試將密度與不同的屏幕尺寸佈局綁定是不正確的。

如果沒有爲不同的屏幕尺寸佈局的區別並不是很大(真的,有不應是比平板式佈局(佈局sw600dp或佈局sw720dp),你應該用最少的其他可以完成你的設計的佈局數量。