2015-03-19 93 views
9

我正在開發一個計算器應用程序,它具有肖像模式的相對佈局。所有按鈕和TextView都放置在這個單一的相對佈局中,而相同的相對佈局放置在陸地模式下。我一直在挖掘網絡近15天,但沒有發現任何相關信息。我的應用程序也支持平板電腦。 MinSDKVer爲14,Target爲v21。支持所有Android設備需要哪些佈局文件夾?

目前我想這些佈局文件夾

1:佈局sw400dp(用於注3和隊友7)

2:佈局sw600dp(適用於7" 平板電腦)

3 :佈局sw720dp(intented爲8.9" 和10" 片劑)

4:佈局小LDPI

5:佈局正常LDPI

6:佈局正常MDPI

7:佈局大MDPI(用於480×800的手機與屏幕> 5" 等泛泰天空維加註)

8:佈局正常HDPI

9:佈局大HDPI(用於銀河注2,銀河注和Galaxy兆)

10:佈局正常xhdpi

11:佈局正常xxhdpi

12:佈局大xxhdpi(用於銀河注4)

13:佈局正常xxxhdpi(用於Nexus 6和用於其它QFHD電話)

所有這些佈局有陸用模式。

問題引起我放置(layout-sw400dp)。 Nexus 6,Note 4,Note 2,Galaxy Mega和Large 480×800手機開始使用此佈局而非預期佈局。

發生這種情況是因爲swdp比layout-normal-xxxx或layout-large-xxxx具有更高的優先級。

注3和配合7是400dpi設備,這就是爲什麼我放置了layout-sw400dp。在此之前,除了Note 3和Mate 7之外,所有設備都能夠完美工作。

而其他問題是具有540×960分辨率的設備。

我試過佈局320dp。通過使用此xhdpi設備和xxhdpi設備開始使用此佈局。

我也嘗試過這些540×960的佈局但是,即使在爲layout-long-port-800×480製作seprate文件夾後,這些功能也不起作用。

1:佈局h960dp-w540dp

2:佈局長端口960×540

3:佈局正常-960×540

我把所有屏幕從Android的讀取虛擬設備管理器通過創建具有實際規格的不同設備

我已經試過手動設置佈局中的Java文件540×960的設備和成功,但我不想這樣做,我不希望用線性佈局。

我徹底研究了「Android不同屏幕支持和提供資源」。

請告訴名稱所需的所有文件夾的佈局,支持所有Android設備或任何其他有效的方式來做到這一點使用Java。

我已經上傳的主人MediaFire所有資源文件,你可以下載Calculator Layout.zip

任何建議和解決方案,可以理解在此先感謝

對不起,英語,因爲這不是我的母語。

+1

有這麼多的佈局是有點矯枉過正。大多數更改可以通過引用不同的[維度](http://developer.android.com/guide/topics/resources/more-resources.html#Dimension)來實現。 – Lamorak 2015-03-19 10:52:19

+0

@Lamorak給我舉例說明如何使用維度實現我期望的目標,因爲維度只不過是包含可從任何地方引用的維度值的單個文件。如果手機沒有選擇想要的佈局,那我該如何提供正確的高度和寬度......我無法使用填充父項或包裝內容 – 2015-03-19 12:58:47

+0

通常,當您希望將佈局適應不同的屏幕尺寸時,主要的變化是尺寸的意見。而不是有兩個相似的佈局,你可以參考尺寸。沒有一個維文件,你可以有幾個文件夾像'values-normal-hdpi'等 – Lamorak 2015-03-19 13:04:39

回答

3

而不是使用這麼多的佈局文件夾,使用下面的文件夾

對於智能手機和平板手機

  • 佈局MDPI
  • 佈局,華電國際
  • 佈局xhdpi
  • 佈局xxhdpi

佛因爲r 7" 平板電腦

  • 佈局sw600dp

對於10" 片

  • 佈局sw720dp

如果你專注於創造這麼多的佈局文件夾,並最終使許多佈局文件,這將成爲添加到Android系列中的每個新設備/屏幕規格的繁瑣過程。

相反,請專注於優化您爲創建適合這些桶的佈局。如提供dp值並避免給出大小/邊距/填充的硬編碼值,以有效方式使用尺寸的資源文件等。

希望這可以節省您的一些重要努力。

+0

這些文件夾不包含所有設備,您可以在我的問題中看到這些文件 – 2015-10-09 07:20:06

+0

如何爲8.9英寸平板電腦創建** drawable **文件夾? 現在8.9英寸平板電腦可以從** drawable-sw720dp **中獲取圖像,但這些圖像對於這些平板電腦來說非常大。 – DaleYY 2017-09-07 10:09:12

0

對於不同的屏幕尺寸,以下是資源文件夾的,用於不同的屏幕尺寸爲小,中,高,和額外的高密度的屏幕提供不同佈局設計的應用程序的列表。

res/layout/my_layout.xml    // layout for normal screen size ("default") 
res/layout-small/my_layout.xml  // layout for small screen size 
res/layout-large/my_layout.xml  // layout for large screen size 
res/layout-xlarge/my_layout.xml  // layout for extra large screen size 
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation 

res/drawable-mdpi/my_icon.png  // bitmap for medium density 
res/drawable-hdpi/my_icon.png  // bitmap for high density 
res/drawable-xhdpi/my_icon.png  // bitmap for extra high density 

Manifest中的以下代碼支持所有dpis。

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

更多看到here

2

而不是使用這麼多的佈局簡單的文件夾,使用下面的文件夾。

對於智能手機

1.layout:正常

2.layout-HDPI:使用Nexus之一,Nexus S的

3.layout-xhdpi:使用Nexus 4

4.layout-xxhdpi:使用Nexus 5

5.layout-xxxhdpi:使用Nexus 6

用於片劑

1.layout-大:使用Nexus 7

2.layout-XLARGE:使用Nexus 9

3.layout-xxlarge:使用Nexus 10

+0

注意:從Android 3.2(API級別13)開始,這些大小組(大,大等)將被棄用,以支持基於可用屏幕寬度管理屏幕大小的新技術。如果您正在開發Android 3.2及更高版本,請參閱爲Android 3.2聲明Tablet Layouts以獲取更多信息。 ref:[link](https://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts) – 2017-09-03 22:22:47

1

我使用的只有三個文件夾佈局

- layout-sw600dp(適用於平板電腦)。
- layout-sw360dp(適用於中等尺寸手機)。
- 佈局(最小寬度小於360的所有佈局)。

相關問題