支持Android应用程序中的多个屏幕

时间:2014-05-10 05:18:41

标签: android xml android-layout layout android-fullscreen

我在开发Android应用程序时支持多个屏幕有问题。

首先,我使用文件activity_main.xml进行了一些布局设计。 我从未使用过AbsoluteLayout,只使用了LinearLayout。 另外,我使用了fill_parent,match_parent,wrap_content和dp的一些布局。 (可能使用dp是问题吗?)

其次,我在每个文件夹中创建了文件夹并复制了activity_main.xml文件。

RES /布局/ activity_main.xml中

RES /布局小/ activity_main.xml中

RES /布局大/ activity_main.xml中

RES /布局XLARGE / activity_main.xml中

RES /布局XLARGE-脊/ activity_main.xml中

最后,我在清单文件中添加了这些代码。

<compatible-screens>
        <screen android:screenSize="small" android:screenDensity="ldpi" />
        <screen android:screenSize="small" android:screenDensity="mdpi" />
        <screen android:screenSize="small" android:screenDensity="hdpi" />
        <screen android:screenSize="small" android:screenDensity="xhdpi" />

        <screen android:screenSize="normal" android:screenDensity="ldpi" />
        <screen android:screenSize="normal" android:screenDensity="mdpi" />
        <screen android:screenSize="normal" android:screenDensity="hdpi" />
        <screen android:screenSize="normal" android:screenDensity="xhdpi" />

        <screen android:screenSize="large" android:screenDensity="ldpi" />
        <screen android:screenSize="large" android:screenDensity="mdpi" />
        <screen android:screenSize="large" android:screenDensity="hdpi" />
        <screen android:screenSize="large" android:screenDensity="xhdpi" />

        <screen android:screenSize="xlarge" android:screenDensity="ldpi" />
        <screen android:screenSize="xlarge" android:screenDensity="mdpi" />
        <screen android:screenSize="xlarge" android:screenDensity="hdpi" />
        <screen android:screenSize="xlarge" android:screenDensity="xhdpi" />
    </compatible-screens>

我在韩国购买的三星Galaxy Note上测试过它,布局不适合整个屏幕。

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

你在这里做得太多了!!

您不需要在不同的文件夹中复制布局,如果它们每次都是完全相同的。

从头开始。删除清单中的整个兼容屏幕部分。

从一个没有限定符的布局开始,只在您尝试解决特定问题时创建新布局(您无法通过调整初始布局来解决)。

您似乎只在一部手机上测试了这种布局,旧的Galaxy Note 1,您还没有尝试过在多部手机上进行测试。通常,在尝试使其在多个屏幕上工作之前,使其在一个屏幕上工作。

使用dps而不是相对值(例如wrap_content或fill_parent),只需尝试在paddings,margin和minHeight / minWidth中使用dps,然后尝试在Width和Height中使用它们。并尝试使用gravity,weight或RelativeLayout来最小化使用dps对太多属性进行硬编码。

此外,尝试使用九个补丁(.9.PNG)而不是直接的PNG。

最终,您将要学习使用布局设计器预览所有屏幕功能(Android Studio中的功能,但即使Eclipse现在也具有相同的功能)。

如果你想用你的布局支持平板电脑和手机,一定要尝试使用片段。