美文网首页Android
android view置灰(哀悼日)

android view置灰(哀悼日)

作者: hao_developer | 来源:发表于2021-01-06 17:31 被阅读0次

置灰前:


image.png

置灰后:


image.png

Android页面置灰
方案1.Android页面绘制流程一般分为measure、layout、draw,页面置灰在draw方法中实现。draw方法参数有canvas、paint,canvas是界面的画布,paint是绘制界面的画笔。可以通过更改paint的属性更改界面背景颜色,通过设置颜色过滤器更改画笔的色调、饱和度和亮度。置灰效果饱和度为0,画笔的设置代码:


Paint  paint = new  Paint();
ColorMatrix cm = new  ColorMatrix();
cm.setStaturation(0);
paint.setColorFilter(new ColorMatrixColorFilter(cm));

方案2.考虑性能使用HardwareLayer(GPU内部的Buffer)对绘制的图形进行缓存。设置方法setLayerType()强制View创建自己对应的层,并将自己绘制到层上。


方案3.给Activity的顶层View设置置灰,实现全局置灰效果。获取界面的根View:

//java
View view  = activity. getWindow(). getDecorView();
 Paint paint = new  Paint();
ColorMatrix cm = new  ColorMatrix();
cm.setStaturation(0);
paint.setColorFilter(new ColorMatrixColorFilter(cm));
view. setLayerType(View.LAYER_TYPE_HARDWARE, paint);
//kotlin
val view: View = window.decorView
val paint = Paint()
val cm = ColorMatrix()
cm.setSaturation(0f)
paint.colorFilter = ColorMatrixColorFilter(cm)
view.setLayerType(View.LAYER_TYPE_HARDWARE, paint)

相关文章

  • android view置灰(哀悼日)

    置灰前 置灰后 给Activity的顶层View设置置灰,实现全局置灰效果。获取界面的根View:

  • android view置灰(哀悼日)

    置灰前: 置灰后: Android页面置灰方案1.Android页面绘制流程一般分为measure、layout、...

  • App置灰或则页面置灰

    1.页面或则view置灰的方式,如果是整个App置灰就设置view为window

  • iOS Swift 哀悼日灰化APP界面

    实现原理:用添加了半透明灰色滤镜的View,盖在想要置灰的界面上。 自定义View 添加View到界面。需要注意,...

  • 交互-按钮置灰与不置灰

    理了下按钮置灰还是不置灰的逻辑,总结讲就是简单的置灰,复杂的不置灰单项的置灰,多项的不置灰 简单的置灰,单项的置灰...

  • 置灰

    视觉置灰 视觉置灰在界面设计中主要起到的是一个筛选的作用。以豆瓣和虎扑为例,帖子如果浏览过就会置灰。 在电商类的产...

  • Android中Holder复用问题

    1:android中常见的RecyclerView控件中 position1位置的条目View进度正在更新,但是滑...

  • 哀悼日将网页变灰

    ··· html {filter: progid:DXImageTransform.Microsoft.Basic...

  • Qt QListWidget+图标

    置灰

  • 图片置灰

    + (UIImage *)grayImage:(UIImage *)sourceImage { CGColorSp...

网友评论

    本文标题:android view置灰(哀悼日)

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