Android 中的多屏幕 xml

2024-03-16

我正在开发2.2版本的android,xml是根据这个版本设计的 模拟器规格:2.2版,内置:HVGA,内存:1024

现在我需要将此应用程序转换为4.0版本的三星galaxy s3,但屏幕非常拉伸,看起来不太好

如果有任何帮助,请提前致谢。


您必须为您的应用程序创建多个资源。 Android 有 4 种分辨率(ldpi、mdpi、hdpi 和 xhdpi)和 4 种通用屏幕尺寸(小、中、大和超大)。因此,您必须制作 4 种布局(如果您不打算支持平板电脑,则制作 3 种布局,因为平板电脑属于超大类别)来支持屏幕尺寸。

这是一般指南:

将小型、中型、大型和超大型的布局放入 res/ 文件夹中,如下所示:

res/layout/sample_layout.xml             // default layout
res/layout-small/sample_layout.xml       // layout for small screen size
res/layout-large/sample_layout.xml       // layout for large screen size
res/layout-xlarge/sample_layout.xml      // layout for extra large screen size

你也可以使用

res/layout-land/sample_layout.xml适用于所有屏幕尺寸的横向布局,或者您可以将特定屏幕尺寸的横向布局作为目标res/layout-medium-land/sample_layout.xml

请注意,所有布局都具有相同的名称。

准备好布局后,您还需要注意图像分辨率

再次在您的 res/ 文件夹中添加如下图像:

res/drawable-ldpi/sample_image.png         // low density
res/drawable-mdpi/sample_image.png         // medium density
res/drawable-hdpi/sample_image.png         // high density
res/drawable-xhdpi/sample_image.png        // extra high density

再一次,所有图像都具有相同的名称。

设计图像的一般准则是:

ldpi is 0.75x dimensions of mdpi
hdpi is 1.5x dimensions of mdpi
xhdpi is 2x dimensinons of mdpi

一般来说,我为 320x480 屏幕设计 mdpi 图像,然后根据上述规则乘以尺寸以获得其他分辨率的图像。

Android 将根据设备自动选择布局和图像的最佳组合。例如,对于高分辨率中等尺寸设备,将向用户显示布局中等和高密度图像。

确保为所有这些组合创建模拟器并彻底测试您的应用程序。这是官方文档以获取更多信息:

https://developer.android.com/guide/practices/screens_support.html https://developer.android.com/guide/practices/screens_support.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 中的多屏幕 xml 的相关文章

随机推荐

  • 如何在 AUTO_ACKNOWLEDGE JMS 会话场景中模拟消息重新传递?

    在下面的测试中 我尝试模拟以下场景 消息队列启动 启动设计为在消息处理期间失败的消费者 产生一条消息 消费者开始处理消息 在处理过程中抛出异常来模拟消息处理失败 失败的消费者被停止 另一个消费者启动的目的是接收重新传递的消息 但我的测试失败
  • SSL:尝试使用 Google Assistant SDK 时的 CERTIFICATE_VERIFY_FAILED

    当尝试从我的 Raspberry Pi 授权访问 Google Assistant API 时 我收到 SSLError 类型的错误 指出证书验证失败 当我跑步时 python m googlesamples assistant auth
  • 获取数字并输出其英文单词的算法

    我想用 C 语言编写一个程序 要求用户输入一个数字 然后用英文打印该数字 例如 if INPUT 1 then print ONE if INPUT 2 then print TWO 等等 它可以使用 switch case 和 if el
  • 移动设备上的 Javascript 点击事件

    我有一个 Javascript 函数 在 PC 上运行良好 但在移动设备上加载时不起作用 我认为这是因为移动设备对待点击的方式不同 但是如何修改以下功能以使其在移动设备上运行 function var a 48 0 49 1 50 2 51
  • DRF 序列化器中多个查找字段的自定义超链接 URL 字段

    我在用Django 休息框架 http www django rest framework org 用于为我的项目开发 Web api 在我的项目中 我需要构建嵌套 api 的端点 如下所示 users to get all users u
  • DICOM 图像中引用的图像序列中的[引用的 SOP 类/实例 UID] 是什么?

    我正在使用 fo dicom 库开发模态工作列表客户端 我不清楚以下与 有关的事情Referenced SOP Instance UID 0008 1155 什么是引用的 SOP 实例 UID 整个系列的参考 SOP 实例 UID 是否相同
  • 将密码迁移到 Devise

    我正在将用户数据库从 PHP 迁移到 Rails 我已经安装了 Devise Gem 现在运行良好 另外 我还发现了如何将现有用户的密码迁移到 Rails 的提示 我已将旧密码添加到相同的密码中encrypted passwordDevis
  • Android Marshmallow 6.0.1 蓝牙扫描未返回结果

    根据 Kitkat 4 4 4 的 update appCompat 使用以下代码和权限 6 01 中的蓝牙似乎无法按预期工作 没有返回任何结果 并且我附近有几个可发现的设备 有人对为什么有任何见解吗 我在 Nexus 5 上运行
  • python -正则表达式匹配单词列表

    我有一个 python 脚本 其中大约有 100 个正则表达式行 每行匹配某些单词 显然 该脚本每次运行时都会消耗高达 100 的 cpu 我基本上向它传递了一个句子 它会返回找到的任何匹配的单词 我想将它们组合成大约 4 或 5 个不同的
  • PHPUnit - getallheaders 不起作用

    我正在测试我的代码 并且标头有一些问题 在我使用的每个 api 中 headers getallheaders 为了实现这一点 当我使用应用程序或 chrome postman 扩展进行测试时 效果很好 当我启动测试时 像这样 client
  • 动态设置onclick并传入元素本身来访问innerHTML

    我正在动态创建一些 div 元素 然后填充它们innerHTML带有文本的属性 我正在尝试设置他们onclick事件处理程序如下 myDiv onclick function alert Hello 我能做到的 我想做的是能够访问新定义的值
  • 外键约束失败

    我在 php 和 mysql 方面相对较新 在我的值中插入值时我面临的问题leave表 我的leave包含以下列的表 1 lid INT主键 2 empname varchar 3 用户名 varchar 4 点头 INT 5 sdate
  • 使用设备构建时,Monotouch 在 LINQ 查询上崩溃

    这是我得到的错误 mscorlib 在使用 aot only 运行时尝试 JIT 编译方法 System Linq OrderedEnumerable 1 GetEnumerator 从我读到的内容看来 编译器在本例中不包含 GetEnum
  • 带有 CSV 文件的 azure Terraform 参数

    我正在尝试使用 CSV 文件访问 terraform 变量数据 创建资源组并将资源组的名称添加到 CSV 文件中并尝试访问代码 这是代码 locals Resource groupname csvdecode file path modul
  • 如何将垂直线的表格图像分成三张图像?

    我想将垂直线上的表格图像分成三个图像 如下所示 是否可以 每列的宽度是可变的 可悲的是 如您所见 左侧垂直线是从标题向下绘制的 输入图像 input png 输出图像 output1 png 输出图像 output2 png 输出图像 ou
  • 如何学习阿格达

    我正在努力学习agda 但是 我遇到了一个问题 我在 agda wiki 上找到的所有教程对我来说都太复杂了 并且涵盖了编程的不同方面 在并行阅读了 3 个关于 agda 的教程后 我能够编写简单的证明 但我仍然没有足够的知识来使用它来实现
  • 调用随机函数 Javascript,但不能调用同一函数两次

    我使用一个随机选择另一个有效函数的函数 但有时它会连续运行相同的函数两次甚至更频繁 有办法防止这种情况吗 我当前的代码 window setInterval function var arr func1 func2 func3 rand M
  • Node.js - 异步模块加载

    是否可以异步加载 Node js 模块 这是标准代码 var foo require foo js waiting for I O foo bar 但我想写这样的东西 require foo js function foo foo bar
  • 如何以编程方式获取 Google Cloud 定价详细信息?

    谁能告诉我如何以编程方式从 Google Cloud 网站获取 Google Cloud 定价详细信息 例如 Google Compute Engine Google Cloud Storage Google Cloud SQL 等的定价
  • Android 中的多屏幕 xml

    我正在开发2 2版本的android xml是根据这个版本设计的 模拟器规格 2 2版 内置 HVGA 内存 1024 现在我需要将此应用程序转换为4 0版本的三星galaxy s3 但屏幕非常拉伸 看起来不太好 如果有任何帮助 请提前致谢