2012-05-30 108 views
-1

在我的XML中,我有小,正常,大和默認的佈局集。手動選擇佈局集?

我不想讓設備自動選擇佈局設置,但我想選擇的設備寬度的分辨率基地。

這是我manifest.xml

<supports-screens 
    android:anyDensity="true" 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:resizeable="true" 
    android:smallScreens="true" 
    android:xlargeScreens="true" > 
</supports-screens> 

如何設置呢?

+0

如果可能的話,使用[新尺寸限定符(http://developer.android.com/guide/practices/screens_support.html#NewQualifiers),如由鏈路描述中指出@happydude。對於舊設備,使用'small' /'normal' /'large' /'xlarge'標識符。或者,我看到一些公司(例如Pioneer)在活動中圍繞'setContentView(...)'使用條件語句。不過,我強烈建議*不要*進入那個方向...... –

回答

0

在項目的res/目錄,你將包括支持的每個屏幕尺寸佈局的文件夾。可能的文件夾名稱爲layout-small,layout-normal,layout-largelayout-xlarge。如果您省略了一個或多個屏幕大小的文件夾,則Android將使用等於或小於該大小的下一個最接近的文件夾,並且還建議您有一個簡稱爲layout的「默認」文件夾,可用作捕獲 - 所有(建議使用此代替layout-small)。在每個文件夾中,通常會放置一個特定於該屏幕大小的xml佈局文件,並且所有文件都具有完全相同的名稱(例如,layout-normal/my_layout.xmllayout-large/my_layout.xml等)。

從您的ActivityonCreate()方法中,您可以調用setContentView(R.layout.my_layout),該方法會自動從與設備的屏幕大小匹配的文件夾中選擇正確的佈局。

Here是一個非常全面的文件,說明針對不同屏幕尺寸設計的應用程序,包括上面提到的信息。

+0

其實我想知道如果我把'padding = 30dp',設備會自動設置30dp的所有類型的屏幕尺寸?或者需要手動設置不同數量的'dp'? –

+0

DP與屏幕SIZE(長度/寬度)無關,但實際上是屏幕密度(個別像素小)。但是,在回答你的問題時,無論大小或密度如何,30dp在任何屏幕(約3/16英寸)上都會顯示相同,並且在視圖上設置30dp的填充將自動適用於所有屏幕。 – happydude