2014-09-02 190 views
2

我完成了开发(应用程序部分)我的项目的应用程序,但现在我遇到了布局问题。我创建下列文件夹和编辑XML文件: 布局(默认) 布局大 布局正常 布局小 布局XLARGE针对不同屏幕尺寸的不同布局

在我的智能手机(Galaxy S的前进 - 屏幕800×480),布局是好的,同事的智能手机(HTC MINI ONE - 屏幕720x1280)的应用程序还没有得到适当的布局。在这两种情况下(我的智能手机和同事的智能手机),android加载布局正常。

怎么回事?

谢谢

+0

它更好地使用[LinearLayout](http://developer.android.com/guide/topics/ui/layout/linear.html)与[weight](http://developer.android.com/reference/ android/widget/LinearLayout.LayoutParams.html#attr_android:layout_weight) – kId 2014-09-02 07:45:40

回答

0

正如你提供布局,大的布局正常布局小布局XLARGE 4布局类。布局文件夹(没有任何限定符)将是无用的。所有设备将落入其他4个屏幕桶中。

从你的描述,我想你应该从资源中删除布局正常的文件夹。

此外,正常,大和其他两个只是“范围”。如果你想在屏幕尺寸更精确的控制,你可以使用layout-sw

+0

感谢您的回复。我删除了布局文件夹和布局 - 普通文件夹,但我遇到同样的问题。 – user1410756 2014-09-02 07:37:33

+0

尝试在文件夹布局-sw720中放置您想要的HTC MINI ONE布局。这应该工作。和一个很好的指导是http://developer.android.com/guide/practices/screens_support.html – suitianshi 2014-09-02 07:41:03

+0

感谢您的答复,但我有与Galaxy S3相同的问题,我想找到一个解决方案,我不想创建多个文件夹(一个用于屏幕尺寸)。 – user1410756 2014-09-02 07:50:30

0

请为您的应用程序Besouse布局文件夹中删除loyout文件夹将是无用的

Galaxy S的前进 - 屏幕800X480布局,华电国际

对于具有720×1280分辨率的设备,你可以使用布局W720-h1280文件夹

+0

感谢您的回复。我的应用程序将运行在所有的Android设备上,所以我必须找到一个解决方案。例如,现在我尝试在Galaxy S3上使用我的应用(屏幕:360x640),并且我有布局问题。 – user1410756 2014-09-02 07:39:54

2

您可以创建不同的布局对不同屏幕的宽度,而不只是建立小型和大型dpi文件夹,在这个方法中,你只会有一个drawable文件夹包含所有的资源和多layout文件夹中,最主要的一个叫做布局,并包含以运行的情况下,指定的布局也没有发现它在另一个布局文件夹的默认布局,并在android developers page描述的文件夹层次结构将如:

res/layout/main_activity.xml   # For handsets (smaller than 600dp available width) 
res/layout-sw600dp/main_activity.xml # For 7” tablets (600dp wide and bigger) 
res/layout-sw720dp/main_activity.xml # For 10” tablets (720dp wide and bigger) 

和例如,如果你想定制的布局,以340dp屏幕的宽度,将创建layout-sw340dp文件夹内的res文件夹,因此,它会像

res/layout-sw340dp/main_activity.xml 

,程序会自动根据设备宽度将布局按比例分配到相应的文件夹。

2

请注意布局的屏幕密度。尽管将布局文件放在适当的布局容器中,但并不意味着Android会尊重文件夹,因为密度在Android选择正确的layout.xml文件的方式方面也起着重要作用。

任何设备小于5英寸将属于sw320dp类的解决办法是再创建一个名为layout-sw320dp-ldpilayout-sw320dp-mdpilayout-sw320dp-hdpilayout-sw320dp-xhdpilayout-sw320dp-xxhdpi单独的文件夹,并把相应的XML文件,在其中。

同样,您可以使用其他屏幕尺寸,如layout-sw600dplayout-sw720dp等,屏幕密度以上。

+2

到目前为止的最佳答案,谢谢你bhai你解决了我的问题,并节省了很多时间从浪费已经浪费了一些..! :) – 2015-06-21 09:08:23

+0

@arif,如果我们正在构建一个3.2以上的应用程序,那么没有使用默认的layout.xml对吗?即layout-ldpi,layout-mdpi等。 – 2015-09-09 09:03:09