美文网首页Android相关
一行代码实现界面全灰(android,web,flutter)

一行代码实现界面全灰(android,web,flutter)

作者: 浮名虚誉架构师 | 来源:发表于2020-04-08 18:25 被阅读0次

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端实现

<style type="text/css">
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)
}
</style>

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,在最外层套上即可

相关文章

网友评论

    本文标题:一行代码实现界面全灰(android,web,flutter)

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