2015-03-19 80 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的所有布局)。

相关问题