我在Watch Faces for Wear OS上玩耍
当前,我已经创建
一切都可以在屏幕尺寸为320x320的圆形设备上正常工作
当我使用屏幕尺寸为360x360的设备时,事情变得越来越复杂。从下面的屏幕快照中可以看到,“刻度线”的大小不会自动调整。
由于我是开发Watch Faces的新手,而且在官方文档网站上也没有太多相关信息,因此我想了解如何处理这些情况?
我应该为每种尺寸创建具有正确尺寸的单独图像,并将其放在正确的文件夹中,例如:
或者还有其他方法可以实现,我宁愿不要从代码中以编程方式调整图像的大小,但是如果这是我可以尝试的唯一解决方案。
这是我的游乐场项目来源code
P.S。任何文档,源代码都将非常有用。
答案 0 :(得分:1)
在上面的示例中,两个设备都属于hdpi
密度区域,但是屏幕尺寸仍然略有不同。您可以使用the minimum width qualifier分别定位它们。但是,这将需要大量额外资源,以确保您覆盖所有可用的屏幕尺寸。
我个人更喜欢对代码中的资产执行简单的缩放操作。在运行时检查屏幕大小,并将其用作可绘制对象(或位图)的边界。看起来可能像这样:
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);
确保提供的资产足够大,可以容纳每个密度桶中的最大屏幕。只要您缩减资产一点点,它就不会引起注意。