我正在玩 Wear OS 的表盘
目前,我已经创建了
- 背景 320x320
- 刻度圈 320x320
- 时针、分针和秒针 320x40
在屏幕尺寸为 320x320 的圆形设备上一切正常
当我使用屏幕尺寸为 360x360 的设备时,事情变得复杂。正如您从下面的屏幕截图中看到的,刻度圈的大小不会自动调整。
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(使用前将#替换为@)