App 一行代码实现黑白化实现探索

App 黑白化实现探索,有一行代码实现的方案吗?

4 月 4 日这一天,不少 网站、App 都通过黑白化,表达了深切的哀悼。

这篇文章我们纯谈技术。

我在当天,也给上线了黑白化效果:

直接撸代码吧!!

硬件加速方案

大家都知道硬件加速吧,我们一般选择硬件绘制还是软件绘制会调用下面的 API:

view.setLayerType(layerType, null);

我们很少关注,第二个参数。

第二个参数是Paint,然后我们可以这么做:

Paint mPaint = new Paint();
ColorMatrix cm = new ColorMatrix();
cm.setSaturation(0);
mPaint.setColorFilter(new ColorMatrixColorFilter(cm));
getWindow().getDecorView().setLayerType(View.LAYER_TYPE_HARDWARE, mPaint);

看到了吗…

我们可以直接给任何一个 View 去设置灰度化。

而且我们 Activity 可以拿到 decorView,也就是说我们直接在 decorView 上设置上述代码就可以了。

运行了一下:自行运行

这个方案明眼人看一眼,都知道明显简单多了。

你可以在 BaseActivity 或者搞个ActivityLifecycleCallbacks,只要能拿到 DecorView 就行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值