Android端实现

Paint paint = new Paint();

ColorMatrix cm = new ColorMatrix();

cm.setSaturation(0);

mPaint.setColorFilter(new ColorMatrixColorFilter(cm));

getWindow().getDecorView().setLayerType(View.LAYER_TYPE_HARDWARE, paint);

可以放到基类里边去统一调用!另外你想只对某个view进行操作的话把getWindow().getDecorView()换成对应的view即可

Web端实现

html {

filter:grayscale(100%);

-webkit-filter:grayscale(100%);

-moz-filter:grayscale(100%);

-ms-filter:grayscale(100%);

-o-filter:grayscale(100%);

filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);

-webkit-filter:grayscale(1)

}

filter是滤镜的意思,filter:gray的意思就是说给页面加上一个灰度的滤镜,所以html里面的所有内容都会变成黑白的了。不过这个滤镜对于chrome和safari浏览器是无效的,所以下面会有一行-webkit-filter: grayscale(100%);这个样式是专属于使用webkit内核的浏览器的,意思和FILTER: gray;差不多,只是写法不同

Flutter端实现

runApp(

ColorFiltered(

colorFilter: ColorFilter.mode(Colors.white, BlendMode.color),

child: FlutterApp())));

使用ColorFiltered,在最外层套上即可

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐