首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >支持多屏(手机和平板电脑)

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

Stack Overflow用户
提问于 2012-02-15 17:35:20
回答 3查看 3.3K关注 0票数 1

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

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

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

代码语言:javascript
运行
复制
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如下所示:

代码语言:javascript
运行
复制
<?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中有这样一行:

代码语言:javascript
运行
复制
<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,该怎么办?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-15 20:41:58

解决方案:

你应该遵循:Best Practise

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

如下所示:

代码语言:javascript
运行
复制
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

根据设备屏幕大小的不同,使用不同大小的图像:

如下所示:

代码语言:javascript
运行
复制
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

如果它不能解决你的问题,那么对不同布局的图像使用静态大小。

根据我的观点和文档本身的解释,您必须遵循某些步骤才能做到这一点。

希望能对你有所帮助。如果没有,那么让我知道你在哪里停止管理布局。

谢谢。

票数 2
EN

Stack Overflow用户

发布于 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中引入)。

票数 2
EN

Stack Overflow用户

发布于 2012-02-15 17:46:09

试着用这个。

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9290888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档