我是初学者为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支持怎么办?
答案 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