繁体   English   中英

Android Wear OS Watch Face支持不同的屏幕尺寸

[英]Android Wear OS Watch Face Support different screen sizes

我在Wear OS的Watch Faces周围玩耍

目前,我已经创建

  • 背景320x320
  • 刻度线320x320
  • 时,分,秒针320x40

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

在此处输入图片说明

当我使用屏幕尺寸为360x360的设备时,事情变得越来越复杂。 从下面的屏幕快照中可以看到,“刻度线”的大小不会自动调整。

在此处输入图片说明

由于我刚开始开发Watch Faces,并且在官方文档网站上没有太多相关信息,我想了解如何处理这些情况?

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

  • 绘制圆-320dpi
  • 绘制圆-360DPI
  • 绘制圆-390dpi

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

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

PS任何文档,源代码将非常有用。

在上面的示例中,两个设备都属于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);

确保您提供的资产足够大,可以容纳每个密度桶中的最大屏幕。 只要您缩减资产一点点,它就不会引起注意。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM