支持多个屏幕(手机和平板电脑)

时间:2012-02-15 09:35:20

标签: java android android-layout

我是初学者为android编程。首先,我需要2个设备手机(480x800)和平板电脑(1280x800)支持我的应用程序。

我读了这篇文章并试图一步一步地做。 Supporting Multiple Screens

所以我创建了包含布局的文件夹:

res/layout/firstPage.xml//this is by default phone layout port and land
res/layout-sw720dp/firstPage.xml//this is tablet port layout
res/layout-sw720dp-land/firstPage.xml//this is tablet land layout

我的xml看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_gravity="center_vertical"
    android:baselineAligned="false"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:text="@string/button1" />

    <Button
        android:id="@+id/button2"
        android:text="@string/button2" />

    <Button
        android:id="@+id/button3"
        android:text="@string/button3" />

</LinearLayout>

我不提供有关按钮的更多信息,因为在每个布局中它们都是不同的。

在我的AndroidManifest.xml中,我有这一行:

<supports-screens android:anyDensity="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:largeScreens="true"/>

如果我将tru设置为any anyDensity =“true”

,也许我不需要为其他人设置true

所以我认为我做了我应该做的一切。但是,当我想在平板电脑上进行测试时,它会默认显示我的手机布局。 那么我错过了什么? 或者我还需要做一些编码?

编辑:

我想我理解为什么...... 从Android 3.2(API级别13)开始,不推荐使用上述大小组,您应该使用swdp配置限定符来定义布局资源所需的最小可用宽度。

我的桌子是3.1所以为什么它找不到布局? 但是,如果我想从2.1到4支持怎么办?

3 个答案:

答案 0 :(得分:2)

Sollution:

您必须遵循:Best Practise

尝试针对不同的屏幕尺寸使用不同的布局:

如:

res/layout/my_layout.xml         // layout for normal screen size ("default")res/layout-small/my_layout.xml       // layout for small screen size
res/layout-large/my_layout.xml       // layout for large screen size
res/layout-xlarge/my_layout.xml      // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

根据设备的不同屏幕尺寸使用不同尺寸的图像:

如同:

res/drawable-mdpi/my_icon.png        // bitmap for medium density
res/drawable-hdpi/my_icon.png        // bitmap for high density
res/drawable-xhdpi/my_icon.png       // bitmap for extra high density

如果它没有解决您的问题,请使用相应不同布局的图像的静态大小。

根据我的观点和文件,它自己解释说你应该按照某些步骤来做到这一点。

希望它会对你有所帮助。如果没有,那么请告诉我你在管理布局方面停下来的地方。

感谢。

答案 1 :(得分:2)

layout-sw720p仅适用于3.2及Android版本之后,而不适用于3.0和3.1

希望这会有所帮助 链接在这里 http://developer.android.com/guide/practices/screens_support.html 在使用新尺寸限定符下 - &gt;表2.屏幕大小的新配置限定符(在Android 3.2中引入)。

答案 2 :(得分:1)

尝试使用此...

res/layout/firstPage.xml//this is by default phone layout port and land
res/layout-xlarge/firstPage.xml//this is tablet port layout
res/layout-xlarge-land/firstPage.xml//this is tablet land layout