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

 

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

 实现:

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

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);
    }

 总结

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

有帮助给个赞吧!!!

技术
今日推荐
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:766591547
关注微信