不同型号手机的布局

时间:2013-01-01 05:36:06

标签: android android-layout

最近我开发了一款适用于Galaxy 10.1的应用程序,7英寸,1024x600,480x800,注意800高度,高度为S3,高度为720。他们都完全按照这些决议运行。但是当我们谈论注释2和galaxy 7 plus等时,我们遇到了几个问题。这些设备上的布局是不正确的。在那个面临布局问题的iam我使用layouts文件夹作为layouts-normal-xhdpi-1280x800和S3 layouts-normal-xhdpi-1280x720并将所有布局放在一个文件夹中,这使得一个apk支持所有这些布局。

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

由于这个问题,我无法弄清楚如何为S3和Note 2声明布局文件夹。 有什么办法我只使用默认的四个文件夹

布局Xlarge

使用普通

布局Xhdpi

布局mdpi

布局hdpi,正常

并支持所有屏幕的所有布局,如S3,注1,注2,7英寸以及其他。当我尝试启动我的项目时,我总是想到着名的游戏,比如其中一个是“Temple Run”,它运行在所有手机和标签上。

制作一堆布局文件夹使我的应用程序变得像是超过80MB限制而且谷歌市场只接受少于50MB的应用程序。

从语法上讲,我们只使用一个布局文件夹并在所有屏幕上支持此布局。 我阅读了一些文章和Android开发人员门户网站,但他们并不满足我。他们都说你必须为不同的屏幕制作不同的布局文件夹,甚至在stackoverflow上我看到了相同的情况,以节省我的第一个项目的时间 我使用这些技术,但我的工作现在日益增加,我希望我从那些使我的应用程序不重的技术开始,因为这些布局,而不是浪费我的时间来制作应用程序数量的布局数。 / p>

帮助的数量将受到赞赏,我想要答案和建议,因为这些问题面临着新的开发人员和其他人的问题。

1 个答案:

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

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

修改:

以下是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-mdpilayout-large-ldpi进行不同的识别,而是仅仅通过其smallest width来识别?因为,android为不同的图像提供drawables目录,只有它的解决方案。你有上面的解决方案。