2015-07-28 28 views
3

connectIQ API是否有可能檢查手錶是圓形還是方形?如何檢查手錶是圓形還是方形

我的應用程序繪製進度條的計時器,我可以使它通用,如果我找到一個方法來確定屏幕是圓的還是方

回答

2

似乎有不被直接的功能,但你可以隨時檢查手錶表面的寬度和高度:

dc.getWidth(), dc.getHeight() 

如果他們是平等的,說,218px,你有一個菲尼克斯3,顯然圓臉。如果它們的大小爲205像素x 148像素,則表示面向方形v0voactive

也許寫一個函數,你可以從onLayout撥打:

function isRoundFace (dc) { 
    return dc.getWidth() == dc.getHeight(); 
} 
2

它可以使用resource compiler爲不同屏幕的幾何形狀指定的資源。這可以用來識別應用程序在哪個設備上運行。

在您的項目中,通過在項目根目錄中創建特定於設備的目錄(例如),爲您打算支持的每個設備指定一組唯一的資源(包括字符串,圖像和菜單等內容) vivoactiveresources-fenix3)。

接下來,創建在每個設備的資源目錄中的resources.xml中文件,指定設備類型的字符串資源:

<resources> 
    <bitmap id="LauncherIcon" filename="images/launcher_icon.png" /> 
    <string id="AppName">MyApp</string> 
    <string id="deviceType">vivoactive</string> 
</resources> 

當應用程序啓動時,做一個簡單的檢查來獲得設備在該應用程序正在運行:

function onStart() { 
    deviceType = Ui.loadResource(Rez.Strings.deviceType); 
} 

然後,檢查設備類型時候只要你需要做一些獨特的特定設備:

function drawProgressBar() { 
    if (deviceType.equals("vivoactive")) { 
     // Do vivoactive-specific stuff here 
     ... 
    } 
} 

你可以抽象這一點,如果你願意的話,購買使用更通用的deviceTypes像「圓」,「廣場」等,這樣你就不必寫的邏輯來處理每一個獨特的設備模型。

+3

您可以通過檢查'Sys.getDeviceSettings()。screenShape'的值來檢查設備屏幕的形狀。它的文檔可以在這裏找到(http://developer.garmin.com/downloads/connect-iq/monkey-c/doc/Toybox/System/DeviceSettings.html#screenShape-in​​stance_method)。 –

3

類:Toybox::System::DeviceSettings是一種方法screenShape(),它看起來像你想要的。

相關問題