1

我遇到的问题与支持多种屏幕尺寸有关——我相信这是一个相当普遍的问题。我搜索了很多,但没有找到有用的东西。

我的项目以传统方式布局,带有支持各种大小的文件夹,称为layout, layout-small, layout-large, layout-xlarge.

因此,正如我发现的那样,即使在这些尺寸范围内,屏幕的尺寸也不尽相同。例如,我的 320x480 屏幕符合正常尺寸布局,但某人的 480x800 也是如此。可以想象,我的应用程序的内容不会填满 480x800 设备的整个屏幕,因为有更多区域。以下是它的外观示例:

在 320x480(我设计的)上:

在此处输入图像描述

在 480x800 上(注意底部的额外空间):

在此处输入图像描述

现在,我做了很多研究并应用了很多技术,努力让我的应用在所有屏幕上都看起来不错,但我觉得我缺少一些基本的东西。我已经采取了所有基本步骤来使用,dp而不是到处px使用RelativeLayout,诸如此类。但我需要一些方法让我的应用程序重新调整自身大小以更好地适应更大的屏幕。例如,各个组件之间的边距可能会增加一点,以占用更多的空白垂直空间。

有什么建议或帮助吗?在最坏的情况下,有没有办法设计一个专门为 480x800 屏幕启动的布局(因为它们似乎是最常见的)?谢谢。

4

3 回答 3

1

320 : 480 与 480 : 800 的比例不同。因此,与水平空间相比,后者的垂直空间比前者多。所以你的布局没有问题。

于 2012-08-19T13:30:35.883 回答
1

如果我是你,我会使用这样的布局:

<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1">
        <!-- Your first form line -->
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1">
        <!-- Your second form line -->
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1">
        <!-- Your third form line -->
    </LinearLayout>
        <!-- .... -->

</LinearLayout>

这个布局将产生这个(当然没有颜色:))。线条(彩色框)的比例是固定的,但它的大小在动态上适合屏幕高度。fill_parent 和 layout_weight 可以解决问题。

如果你想使用RelativeLayout,你必须从JAVA编程设置空白和高度(一些解释here

于 2012-08-19T14:01:23.023 回答
1

您需要设计屏幕,以便始终考虑您定义的视图在屏幕尺寸缩小或增长时的行为方式。如您所见,即使在相同尺寸类别中,屏幕也可能有很大差异。

在您显示的屏幕的情况下,您需要通过使用权重而不是精确的 dp 量来给出 EditText 组件的宽度。您可以找到很多关于如何做到这一点的文章,这里有一篇作为开始。

于 2012-08-19T13:32:05.103 回答