5

最近我为 Galaxy 10.1 ,7 英寸 1024x600 ,480x800 开发了一个应用程序,Note 800 高度 abd S3 720 高度。他们都在这些分辨率上完美运行。但是当我们谈论note 2和galaxy 7 plus等时,我们遇到了几个问题。这些设备上的布局没有正确显示。在那个我在布局中遇到问题时,我使用 layouts 文件夹作为 layouts-normal-xhdpi-1280x800 和 S3 layouts-normal-xhdpi-1280x720 并将所有布局放在一个文件夹中,这使得一个 apk 支持所有这些布局。

但是当客户下载 apk 时,他们会遇到一个问题,即 Galaxy Note 选择了 layout-normal-xhpi-1280x720 布局,这是正确的,但 S3 和 Galaxy Note 2 的密度不同。

由于这个问题,我不知道如何为 S3 和 Note 2 声明布局文件夹。有什么方法可以让我只使用默认的四个文件夹

布局 Xlarge

正常布局 Xhdpi

布局 mdpi

正常布局 hdpi

并支持所有屏幕的所有布局,如 S3、note 1、note 2、7 英寸加等。当我尝试开始我的项目时,我总是想到其中一个著名的大型游戏是“Temple Run”,它可以在所有手机和标签上运行。

制作一堆布局文件夹使我的应用程序很重,就像它超过了 80MB 的限制,而 Google 市场只接受少于 50MB 的应用程序。

从编程上讲,有什么方法可以让我们只使用一个布局文件夹并在所有屏幕上支持这种布局。我阅读了许多文章和 android 开发者门户,但它们并不满足我。他们都说你必须为不同的屏幕制作不同的布局文件夹,甚至在 stackoverflow 上我也看到了相同的情况,以节省我在第一个项目中使用这些技术的时间,但是我的工作现在每天都在增加,我希望我从那些使我的应用程序不会因为这些布局而变得沉重的技术开始,而且不要浪费我的时间来为应用程序数量制作布局数量。

帮助的数量将不胜感激,我想要答案和建议,因为这些问题是由许多新开发人员和其他开发人员所面临的。

4

1 回答 1

2

我在我的应用程序中也面临这样的问题。但我找到了一个很好的解决方案。我只有一种布局tablet,目录名称是layout-sw600dp. 现在,当部分涉及高度和宽度问题时,我创建了几个不同values的目录来放置dimensionsfont size其他存根。所以平板屏幕没有任何constant价值layout

androd:layout_width:"60dp" // i drop this scenario

androd:layout_width:"@dimen/tab_width" // i used this scenario

你的values目录名称会像

values-xlarge
values-large

所有值都将从您的值目录中获取。它不会创建不同的布局,但一个布局可以多次使用。

编辑:

以下是Developer.android网站的话。配置示例

为了帮助您针对不同类型的设备进行一些设计,以下是典型屏幕宽度的一些数字:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc).
480dp: a tweener tablet like the Streak (480x800 mdpi).
600dp: a 7” tablet (600x1024 mdpi).
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).

使用表 2 中的尺寸限定符,您的应用程序可以使用您想要的任何宽度和/或高度数字在手机和平​​板电脑的不同布局资源之间切换。例如,如果 600dp 是您的平板电脑布局支持的最小可用宽度,您可以提供以下两组布局:

res/layout/main_activity.xml # 对于手机
res/layout-sw600dp/main_activity.xml # 对于平板电脑

===

在此,您可以看到 1280*720 的布局在下面,因此您应该使用这个让您决定差异的东西,layout-sw720dp而不是创建。layout-normal-xlarge而不是使用layout-large-mdpiand进行不同的识别layout-large-ldpi,您不只是通过它来识别smallest width吗?因为,androiddrawables为不同的图像提供目录,唯一的就是它的分辨率。你有上述解决方案。

于 2013-01-01T06:01:47.463 回答