我是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设置为这个anyDensity=" true“,也许我不需要为其他人设置true。
所以我想我做了我应该做的每件事。但当我想在平板电脑上测试时,它会默认显示手机的布局。我错过了什么?或者我也需要做一些编码?
编辑:
我想我明白为什么..。从Android 3.2 (API级别13)开始,以上大小组已被弃用,您应该使用swdp配置限定符来定义布局资源所需的最小可用宽度。
我的表是3.1,所以为什么它找不到布局?但是,如果我想支持从2.1到4,该怎么办?
发布于 2012-02-15 20:41:58
解决方案:
你应该遵循: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
如果它不能解决你的问题,那么对不同布局的图像使用静态大小。
根据我的观点和文档本身的解释,您必须遵循某些步骤才能做到这一点。
希望能对你有所帮助。如果没有,那么让我知道你在哪里停止管理布局。
谢谢。
发布于 2012-02-23 15:12:17
布局-sw720p仅适用于3.2及以后的android版本,不适用于3.0和3.1
希望这能帮上忙,链接http://developer.android.com/guide/practices/screens_support.html在使用新的尺寸限定符-->表2.屏幕尺寸的新配置限定符(在Android3.2中引入)。
发布于 2012-02-15 17:46:09
试着用这个。
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
https://stackoverflow.com/questions/9290888
复制相似问题