[英]Wear OS animation Android
如何每5秒鍾在WearOS
為畫布上的line
設置動畫?
我知道我們必須使用AnimatorTask並調用postInvalidate()
。 但是,由於我是直接在canvas
上繪制line
,所以沒有View
對象。
public class AnimatorTask extends TimerTask {
private WatchEventInfo eventInfo;
public AnimatorTask(WatchEventInfo eventInfo) {
this.eventInfo = eventInfo;
}
@Override
public void run() {
drawAndAnimate();
}
public WatchEventInfo getEventInfo() {
return eventInfo;
}
private void drawAndAnimate() {
Canvas canvas = eventInfo.getCanvas();
// For testing
canvas.drawLine(100, 100, 300, 300 markerPaint);
}
}
假設我的TimerTask
存在於CanvasWatchFaceService
子類中,如何訪問canvas.drawLine()
方法對象並通知canvas
從TimerTask
重繪自身?
通過重寫CanvasWatchFaceService.Engine類中聲明的onDraw(Canvas canvas, Rect bounds)
方法onDraw(Canvas canvas, Rect bounds)
可以訪問畫布。
如果使用Android Studio中的“新建項目”向導創建表盤,則會在MyWatchFace類末尾看到一個名為handleUpdateTimeMessage()
。 此邏輯將確保在交互模式下以INTERACTIVE_UPDATE_RATE_MS
指定的間隔(默認為每秒一次)調用onDraw方法。
在onDraw方法中添加一個檢查,以僅在自上次更新以來已過了五秒鍾才觸發線條動畫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.