[英]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.