首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查手表是圆的还是方的?

如何检查手表是圆的还是方的?
EN

Stack Overflow用户
提问于 2015-07-28 17:56:58
回答 3查看 619关注 0票数 3

是否可以从connectIQ接口检查手表是圆的还是方形的?

我的应用程序正在为计时器绘制进度条,如果我找到一种方法来确定屏幕是圆形还是方形,我可以使其成为通用的

EN

回答 3

Stack Overflow用户

发布于 2016-11-04 16:19:04

Toybox::System::DeviceSettings具有方法screenShape()

可能的返回值如下:

  • SCREEN_SHAPE_ROUND = 1
  • SCREEN_SHAPE_SEMI_ROUND = 2
  • SCREEN_SHAPE_RECTANGLE = 3
票数 4
EN

Stack Overflow用户

发布于 2015-12-22 04:40:42

可以使用resource compiler为不同的屏幕几何形状指定资源。这可以用来识别应用程序在哪个设备上运行。

在您的项目中,通过在项目根目录中创建特定于设备的目录(例如resources-vivoactive或resources-fenix3),为您打算支持的每个设备指定一组唯一的资源(包括字符串、图像和菜单等内容)。

接下来,在每个设备的资源目录内的resources.xml文件中创建一个指定设备类型的字符串资源:

代码语言:javascript
复制
<resources>
    <bitmap id="LauncherIcon" filename="images/launcher_icon.png" />
    <string id="AppName">MyApp</string>
    <string id="deviceType">vivoactive</string>
</resources>

当应用程序启动时,执行一个简单的检查,以获取正在运行应用程序的设备:

代码语言:javascript
复制
function onStart() {
    deviceType = Ui.loadResource(Rez.Strings.deviceType);
}

然后,如果您需要为特定设备执行一些独特的操作,请随时检查deviceType:

代码语言:javascript
复制
function drawProgressBar() {
    if (deviceType.equals("vivoactive")) {
        // Do vivoactive-specific stuff here
        ...
    }
}

如果你愿意,你可以对它进行一点抽象,使用更通用的deviceTypes,比如“圆形”、“方形”等,这样你就不必编写逻辑来处理每个独特的设备模型了。

票数 2
EN

Stack Overflow用户

发布于 2015-10-03 04:05:53

似乎没有一个直接的功能,但你可以随时检查手表表面的宽度和高度:

代码语言:javascript
复制
dc.getWidth(), dc.getHeight()

如果它们相等,比如说218px,你就有一个Fenix3,显然是一个圆脸。如果它们是205px 148px,你面对的是一个方形的vívoactive

也许可以编写一个可以从onLayout调用的函数:

代码语言:javascript
复制
function isRoundFace (dc) {
    return dc.getWidth() == dc.getHeight();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31672982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档