Android黑白模式

目前市面上流行的APP都会在国家哀悼日切换成黑白模式。我司APP之前的处理方式只是让后台把网络图片处理成黑白色,前段时间接到需求,要求把APP界面的其他地方也切换成黑白,比方说这些地方:

image

在我们界面的布局rootView上面的是DecorView,只要在Activity适当的地方调用getWindow().getDecorView()就可以获取DecorView,然后对DecorView调用setLayerType(View.LAYER_TYPE_HARDWARE, paint)方法,就可以实现整个界面的灰度变换,最终效果

image

整体代码如下

  var decorView=window.decorView;
        var paint= Paint()
        var  cm= ColorMatrix()
        cm.setSaturation(0f)
        paint.setColorFilter( ColorMatrixColorFilter(cm));
        decorView.setLayerType(View.LAYER_TYPE_HARDWARE,paint)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容