2012-07-20 111 views
8

參考:http://developer.android.com/guide/practices/screens_support.htmlXLARGE VS sw720dp屏幕尺寸的混亂

舊式的大小量詞是 「過時」:

一組四個廣義的大小:小,中,大,XLARGE 注:從Android 3.2(API級別13)開始,這些大小組 已被棄用,以支持在可用屏幕寬度上基於 管理屏幕大小的新技術。如果您正在開發Android 3.2 及更高版本,請參閱爲Android 3.2聲明Tablet Layouts以獲取更多 信息。

我一直希望具有3.2+的設備仍然使用在drawable-large-mdpi或layout-xlarge中聲明的資源,但這似乎並不是這種情況。

我有一個包含每個尺寸的佈局文件中的測試項目:

  • 佈局sw600dp
  • 佈局720dp
  • 佈局XLARGE
  • 佈局

在運行Android 4.0.x的10英寸摩托羅拉XOOM上,設備會選擇佈局720dp文件夾中的佈局。如果該文件夾不存在,它會選擇layout-sw600dp文件夾中的佈局! 爲什麼不選擇layout-xlarge中的佈局?

更爲奇特的,是我在這些文件夾可繪:

  • 繪製-sw600dp-MDPI
  • 繪製-XLARGE - MDPI

10" 個摩托羅拉XOOM從上面,從drawable-sw600dp-mdpi中選取圖像爲什麼不選擇可繪製的drawable-xlarge-mdpi?

我們不應該期望xlarge quantifier能夠在Android 3.2之上工作嗎?

這是否意味着我必須複製所有資產提拉 - XLARGE - MDPI文件夾,進入繪製-sw720dp-MDPI文件夾? (支持Android 3.0,3.1和3.2 +?)

但願我只是在這裏失蹤簡單的東西。請指教。

+0

我有同樣的問題。我目前正在使用sw600dp文件夾更改Nexus 7的一些佈局。創建此文件夾後,所有平板電腦都使用sw600dp。 – bencallis 2012-07-22 10:18:41

回答

6

從我的理解,爲Android 3.2+,如果你有一個使用新的大小量詞至少一個文件夾,然後它假定您隨處使用這些新尺寸的量詞。所以這就是爲什麼它會忽略layout-xlarge或其他使用舊量詞的文件夾。

關於向後兼容性,你必須在你的項目中使用這兩種類型的量詞。舊的將用於API < 3.2以及用於API> = 3.2的新的API。爲避免重複,對於佈局,您可以使用別名。但是,對於drawables,我不知道任何避免重複的解決方案。

+0

xml別名可用於與佈局相同的drawables – cjayem13 2014-09-12 20:39:27