iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
SideProject30

拿到一支Garmin錶,要怎麼開發app?系列 第 23

[Day-23] 開發新的錶面-4

  • 分享至 

  • xImage
  •  

今天想在錶面上再加上今天是星期幾的資訊,
原本以為很簡單,應該一下就好,沒想到弄了半天,
首先因為Gregorian.info(Time.now(), Time.FORMAT_SHORT)
取出的星期資訊day_of_week是1~7,對映週日~週六

我想了一個簡單的方法就是放一個array,
然後再拿取出的數字-1去array拿字串就好,
又因為我想要針對使用中文的裝置顯示中文,
所以大概像這樣:

    //0~6 en 
    //7~13 zh_TW
    const LOCALIZED_DAYS_OF_WEEK= [ 
    "Sun","Mon","Tue","Wed","Thu","Fri","Sat",
    "週日","週一","週二","週三","週四","週五","週六"
    ];

為了判斷要不要顯示中文,我查了一下api文件,
確實有個Toybox.System.getDeviceSettings()
可以取得DeviceSettings,裡面會有systemLanguage可以取用
但是我怎麼試,編譯都會出錯,
https://ithelp.ithome.com.tw/upload/images/20231008/20128973FCsE0RSl0J.png
後來發現,只支援api 3.1.0以上的project...
可能就是因為我用的api是1.4.0所以才一直有錯吧

最後就用了一個不用程式控制的方式來達成了,

        currentDate = Gregorian.info(Time.now(), Time.FORMAT_LONG);
        var dayOfWeek = currentDate.day_of_week;
        dc.drawText(dc.getWidth() / 2, 20, Graphics.FONT_SMALL, dayOfWeek, Graphics.TEXT_JUSTIFY_CENTER);

只要使用Time.FORMAT_LONG
取出的day_of_week資訊就會根據裝置的設定自己轉換成對應的語言,
就像這樣,
https://ithelp.ithome.com.tw/upload/images/20231008/20128973wOnbSCZriz.png
按下模擬器上方Settings選單,把Language換成其他語言,顯示就會跟著改變了
https://ithelp.ithome.com.tw/upload/images/20231008/20128973VrFLnXp9Dr.png


上一篇
[Day-22] 開發新的錶面-3
下一篇
[Day-24] 開發新的錶面-5
系列文
拿到一支Garmin錶,要怎麼開發app?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言