簡體   English   中英

穿戴OS動畫Android

[英]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()方法對象並通知canvasTimerTask重繪自身?

通過重寫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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM