2013-03-11 55 views
2

通過閱讀文檔here後,我仍然有點困惑,我該如何使用命名方案來正確設置不同設備的佈局。爲不同設備選擇正確的佈局命名方案

我特別需要Galaxy S3,Nexus 7和Asus Transformer的佈局。

我當前使用:

S3: 
    layout-normal 
    layout-normal-land 

Nexus 7: 
    layout-large 
    layout-large-land 

Transformer: 
    layout-xlarge 
    layout-xlarge-land 

這是正確的,或者是有沒有辦法更具體的目標設備?

+1

不要忘記'dimens.xml' - 我發現它顯着減少了佈局文件的數量,特別是在普通和大型之間。此外,沒有'-normal',而是'layout'和'layout-land'。 – 323go 2013-03-11 22:06:14

回答

3

您的示例使用了小型/中型/大型/大型舊桶的舊方法。這是有問題的,因爲例如Galaxy Tab 7.0(1024x600)和Nexus 7(1280x800)都是合格的。 Nexus 7可以處理平板電腦佈局,但舊版本的Tab 7.0通常更適合使用電話佈局。舊系統不支持這種區別,因此,從Honeycomb開始,您可以使用新方法,該方法不依賴於桶,但使用dp中的實際屏幕大小來決定使用哪種佈局。這使您可以更好地控制何時選擇哪個佈局。

查看您鏈接的文檔中的Declaring Tablet Layouts部分。它介紹了基於dp的選擇器。您提到的三種設備都使用可從「sw720dp」方法中受益的較新Android版本。因爲如果你的最低目標版本是Gingerbread或更早版本,你基本上必須同時支持s/m/l/xl存儲桶和更新的基於dp的選擇器。乍一看,這意味着您必須將所有平板電腦佈局複製到多個目錄並手動保持同步。幸運的是,有一個技巧可以在不復制/粘貼布局定義的情況下進行工作。它涉及在values/部分中使用佈局別名。如何做到這一點在Android教程的multiscreen部分有記錄。