美文网首页
Android App全局灰度展示

Android App全局灰度展示

作者: 没有了遇见 | 来源:发表于2021-12-17 13:04 被阅读0次

    近年来,越来越多的App在特殊节日将为了缅怀,纪念App做色色调展示.项目需求也要做成这样的展示.为此做了一下调研整体替换成灰色调

    image.png

    思路:将获取页面的Window在Window上做处理 动态改变色值的着色

    实现:

    1:Application 中实现 ActivityLifecycleCallbacks 监听Activity调用


    image.png
    class CommonAppclication:MultiDexApplication(), ActivityLifecycleCallbacks {
        override fun onCreate() {
            super.onCreate()
            //注册 Activity 监听
            registerActivityLifecycleCallbacks(this)
    
        }
    }
    

    2:ActivityLifecycleCallbacks 实现方法中的onActivityCreated()方法中实现动态改变置灰的效果

      override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
           Paint paint = new Paint();
                ColorMatrix colorMatrix = new ColorMatrix();
                colorMatrix.setSaturation(0f);
                ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);
                paint.setColorFilter(filter);
                activity.getWindow().getDecorView().setLayerType(View.LAYER_TYPE_HARDWARE, paint);
        }
    
    

    注意!!!!

    设置灰度模式的时候 部分页面会和View.LAYER_TYPE_HARDWARE属性冲突 建议局部设置不要设置整个App

    总结

    1:注意启定页处理
    2:页面有动态修改Window的Activity ,Dialog 需要特使处理

    有帮助给个赞吧!!!

    相关文章

      网友评论

          本文标题:Android App全局灰度展示

          本文链接:https://www.haomeiwen.com/subject/tblifrtx.html