Android Wear OS 表盘 支持不同屏幕尺寸

2023-12-15

我正在玩 Wear OS 的表盘

目前,我已经创建了

  • 背景 320x320
  • 刻度圈 320x320
  • 时针、分针和秒针 320x40

在屏幕尺寸为 320x320 的圆形设备上一切正常

enter image description here

当我使用屏幕尺寸为 360x360 的设备时,事情变得复杂。正如您从下面的屏幕截图中看到的,刻度圈的大小不会自动调整。

enter image description here

Question

由于我是开发表盘的新手,并且官方文档网站上没有太多相关信息,我想了解我应该如何处理这些情况?

我应该为每个尺寸创建具有正确尺寸的单独图像并将其放入正确的文件夹中,例如:

  • 可绘制圆形-320dpi
  • 可绘制圆形-360dpi
  • 可绘制圆形-390dpi

或者是否有其他方法可以做到这一点,我不想从代码中以编程方式调整图像大小,但如果这是我可以尝试的唯一解决方案。

这是我的游乐场项目源代码code

附:任何文档、源代码都会非常有用。


在上面的示例中,两个设备都属于hdpi密度桶,但屏幕尺寸仍然略有不同。您可以使用以下方法单独定位它们最小宽度限定符。但是,这需要许多额外的资源来确保覆盖所有可用的屏幕尺寸。

就我个人而言,我更喜欢在代码中对资产进行简单的缩放操作。在运行时检查屏幕尺寸并将其用作可绘制对象(或位图)的边界。它可能看起来像这样:

DisplayMetrics displayMetrics = new DisplayMetrics();
context.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int width = displayMetrics.widthPixels;
int height = displayMetrics.heightPixels;
Rect screenBounds = new Rect(0, 0, width, height);

Drawable faceMarkers = context.getDrawable(R.drawable.face_markers);
faceMarkers.setBounds(screenBounds);

faceMarkers.draw(canvas);

确保您提供的资源对于每个密度桶中最大的屏幕来说足够大。只要你稍微缩小你的资产,它就不会被注意到。

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

Android Wear OS 表盘 支持不同屏幕尺寸 的相关文章

随机推荐

  • FFmpeg从mp4创建m3u8,视频文件大小

    我正在使用 ffmpeg 将 mp4 转换为 m3u8 但首先我需要让 mp4 变小 我使用这段代码来缩小它 ffmpeg i big mp4 b 1000000 small mp4 然后我使用这段代码将其转换为m3u8 ffmpeg i
  • Vue 3 自定义复选框组件,带有 v-model 和项目数组

    迫切需要你们的帮助 所以基本上我有一个带有 v 模型的自定义复选框组件 我在组件上使用 v for 循环来显示带有数组中名称的复选框 在父组件中 我有两列 可用 和 选定 这个想法是 如果我选中其中一个框可用栏它应该出现在选定的列 问题是它
  • 设置 win32 控制台应用程序的库路径

    当我尝试执行简单的 HelloWorld win32 控制台应用程序时 出现 找不到 dll 重新启动应用程序可能会解决问题 错误 我知道 dll 的位置 从命令提示符执行 exe 时如何指定其位置 PS 将 dll复制到 exe的当前目录
  • Doctrine2:这些实体之间的关联有什么问题?

    我正在尝试通过简单的示例来了解 Doctrine2 中的所有更改 请查看以下实体片段 VCat php namespace Application Models Entity Table name v cat class VCat Id C
  • UITableViewCell 中加载 UIView 的 Nib 文件不会拉伸

    我有一个 UIView 可以通过 nib xib 文件重用 我想加载它并填充一个 UITableViewCell 它将在自动调整大小的 UITableView 中使用 全部带有自动布局 大多数工作都很好 但似乎加载的 UIView 使用周围
  • 如何升级Oracle 11g 11.2.0.1中的java版本[关闭]

    Closed 这个问题是无关 目前不接受答案 我的oracle数据库的java版本是1 5 0 10 如何将其升级到java 1 7 0 10 Thanks 这是不可能的 Oracle 为特定版本的 DBMS 提供了特定版本的 Java 并
  • Javascript cloneNode 不是一个函数[重复]

    这个问题在这里已经有答案了 我有几个跨度 span a span span b span span c span span d span I use getElementsByName获取跨度集合 var spans document ge
  • 修复 RegEx 中的 JSLint 擒纵机构不良警告

    我在名为的第三方 jQuery 控件中有以下代码jquery facebox js that JSLint不喜欢 这是正则表达式中的一个严重的擒纵错误 正则表达式对我来说就像 Romulan 所以我不知道如何修复错误 这是正则表达式中的句点
  • 如何使用 Devise 设置电子邮件确认?

    是否有教程解释如何从头开始设置 Devise 的注册确认电子邮件 在开发和生产中 即如果您没有设置 Action Mailer 谷歌搜索刚刚出现了一堆与此相关的单独片段 没有一篇文章能够解释得足够多 而且我不确定它们如何组合在一起 是否有分
  • 正则表达式替换除第一个和最后一个字符之外的内容

    什么是正则表达式 用于将字符串中的双引号 替换为转义反斜杠 后跟双引号 字符串的第一个和最后一个字符除外 示例 1 嵌入字符串中的双引号 Input This is a Test Expected Output This is a Test
  • WELD-001408 类型 [Validator] 的依赖关系不满足

    将项目从 Java EE 6 迁移到 Java EE 7 后 我无法部署该项目 我已经启用了 CDI beans xml 带有 bean discovery mode all 以实现向后兼容性 部署错误似乎与我的代码无关 因为它提到了一个尝
  • C# 将内部 XML 反序列化为字符串

    我有以下 XML
  • Mongodb 按索引字段搜索

    我将字段 search string 添加到我的文档中并为其建立索引 db my collection createIndex search string text Search string 包含以下内容 a ar are are are
  • 如何使用 BeautifulSoup 正确解析 UTF-8 编码的 HTML 为 Unicode 字符串? [复制]

    这个问题在这里已经有答案了 我正在运行一个 Python 程序 该程序获取 UTF 8 编码的网页 并使用 BeautifulSoup 从 HTML 中提取一些文本 但是 当我将此文本写入文件 或在控制台上打印 时 它会以意外的编码写入 示
  • 图形 - 将 3d 点转换为 2d 投影的方程

    我是一名图形新手 但正在使用 HTML5 Canvas javascript 以及一些形状和图像 如果我在点 C x C y C z 处有一个相机 在 P x P y P z 处有一个点 那么将该点转换为 2d 点的最简单方法是什么 以便我
  • 如何访问名称中带有前导数字的财产[重复]

    这个问题在这里已经有答案了 var jsonJSON UrlFetchApp fetch https wowtoken info snapshot json var json Utilities jsonParse jsonJSON get
  • 批量邮件性能发送方式

    我写了一个支持 phpmailer swiftmailer 的邮件脚本 实际上 小型活动效果很好 所有邮件都到达收件人 没有精子或服务器资源问题 我对每个连接的发送性能有疑问 哪种方式更适合发送操作 订阅者具体邮件正文不同 第一个场景 打开
  • 如何创建包含2个表中的数据并将数据保存到一张表的表单

    我有 2 张桌子 Employee ID SalaryPerDay Name unique Schedule ID EmployeeID Date Attending boolean loan discount overTimeHours
  • 获取Android设备/模拟器根目录

    我正在使用 Eclipse Ubuntu 开发 Android 应用程序 像往常一样 我在 AVD 模拟器上进行第一次拍摄 我想建立一个独特的文件夹结构 可以在当前模拟器和最终物理设备 SD 存储卡 上使用 对于虚拟和物理设备类型 通过程序
  • Android Wear OS 表盘 支持不同屏幕尺寸

    我正在玩 Wear OS 的表盘 目前 我已经创建了 背景 320x320 刻度圈 320x320 时针 分针和秒针 320x40 在屏幕尺寸为 320x320 的圆形设备上一切正常 当我使用屏幕尺寸为 360x360 的设备时 事情变得复