【问题标题】:How to detect when android wear watch face is going to enter ambient mode?如何检测android Wear表盘何时进入环境模式?
【发布时间】:2015-07-23 04:15:19
【问题描述】:

我正在尝试在 Android Wear 表盘进入环境模式之前触发它的一些操作。对于活动,有onEnterAmbient() 可覆盖的方法,但我相信墙纸服务不是这样。

那么,有什么方法可以在表盘进入环境模式之前触发其操作?

编辑:特别是,我希望在环境模式有效触发之前检测屏幕何时开始变暗。

【问题讨论】:

    标签: android wear-os watch-face-api


    【解决方案1】:

    已编辑。

    在 CanvasWatchFaceService 上:

    private boolean firstAnimation;     
    
    @Override
    public void onAmbientModeChanged(boolean inAmbientMode) {
      super.onAmbientModeChanged(inAmbientMode);
      if(inAmbientMode){
        firstAnimation = false;
      }
      invalidate();        
    }
    
    @Override
    public void onDraw(Canvas canvas, Rect bounds) {
      if(inAmbientMode){
        if(firstAnimation){
        // draw ambient mode
        }else{
        //draw animation and when finish the animation
        //set the firstAnimation flag to true
        }
      }else{
        //draw normal mode
      }
      invalidate();
    }
    

    【讨论】:

    • 感谢 Vinicius,但我正在考虑在绘制第一个 onAmbiet 帧之前做一些简短的动画。特别是,我希望在实际触发环境模式之前检测屏幕何时开始变暗。
    • 也许使用了一个标志,所以当面部进入环境模式时,你有一个 false 动画标志,绘制一次动画并将其设置为 true,然后绘制环境模式面部 if(inAmbientMode && animationFlag) 这是因为每次调用 invalidate() 方法时,都会绘制人脸。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多