支持所有Android设备需要哪些布局文件夹?

时间:2015-03-19 06:48:40

标签: android android-layout relativelayout

我正在开发一个具有纵向模式相对布局的计算器应用程序。所有按钮和TextView都放置在这个单一的相对布局中,并且相同的相对布局用于Land模式。我已经挖掘了近15天的网络,但没有发现任何相关内容。我的应用程序也支持平板电脑。 MinSDKVer为14,Target为v21。

目前我正在尝试这些Layouts文件夹

1:layout-sw400dp(适用于Note 3和Mate 7)

2:layout-sw600dp(适用于7“平板电脑)

3:layout-sw720dp(意图为8.9“和10”平板电脑)

4:布局小LDPI

5:布局正常LDPI

6:布局正常MDPI

7:layout-large-mdpi(适用于480×800手机屏幕> 5“,如Pantech Sky Vega Note)

8:布局正常HDPI

9:layout-large-hdpi(适用于Galaxy Note 2,Galaxy Note和Galaxy Mega)

10:布局正常xhdpi

11:布局正常xxhdpi

12:layout-large-xxhdpi(适用于Galaxy Note 4)

13:layout-normal-xxxhdpi(适用于Nexus 6和其他QFHD手机)

所有这些布局都有陆地模式。

放置时出现问题(layout-sw400dp)。 Nexus 6,Note 4,Note 2,Galaxy Mega和Large 480×800手机开始使用这种布局而不是预期的布局。

这是因为swdp的优先级高于layout-normal-xxxx或layout-large-xxxx。

Note 3和Mate 7是400dpi设备,这就是我放置layout-sw400dp的原因。在此之前,除了Note 3和Mate 7之外,所有设备都工作正常。

其他问题是分辨率为540×960的设备。

我尝试过layout-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

任何建议和解决方案将不胜感激

对不起英语,因为它不是我的母语。

4 个答案:

答案 0 :(得分:4)

使用以下文件夹,而不是使用这么多简单的布局文件夹。

适用于智能手机

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-large:使用Nexus 7

2.layout-xlarge:使用Nexus 9

3.layout-xxlarge:使用Nexus 10

答案 1 :(得分:3)

使用以下文件夹

,而不是使用这么多布局文件夹

适用于智能手机和平板手机

  • 布局MDPI
  • 布局HDPI
  • layout-xhdpi
  • 布局xxhdpi

适用于7“片剂

  • 布局sw600dp

对于10“片剂

  • 布局sw720dp

如果您专注于创建这么多布局文件夹并最终创建如此多的布局文件,那么对于添加到Android系列中的每个新设备/屏幕规范来说,这将变得非常麻烦。

相反,请专注于优化您正在创建的布局以适应这些存储桶。例如在dp中提供值并避免给出大小/边距/填充的硬编码值,以有效的方式使用资源文件等。

希望这会节省你的一些重复努力。

答案 2 :(得分:1)

  

我正在使用Only Three文件夹布局

- layout-sw600dp(适用于平板电脑) - layout-sw360dp(适用于中型手机) - 布局(对于宽度小于360的所有宽度)。

答案 3 :(得分: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