APP全局色彩饱和度修改

对以下两篇鸿洋大神的博文进行了实践,并记录对应的问题。
App 黑白化实现探索,有一行代码实现的方案吗?
App 黑白化实现探索2, 发现了一种更方便的方案,我被锤了!

第一篇
第一篇采用是比较常规的方法,即在View绘制的时候改变色彩饱和度,以ImageView为例,代码如下:

public class MyTextView extends ImageView {Paint mPaint = new Paint();public MyImageView(Context context) {super(context);init();}public MyImageView(Context context, @Nullable AttributeSet attrs) {super(context, attrs);init();}public MyImageView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init();}private void init(){ColorMatrix cm = new ColorMatrix();cm.setSaturation(0);mPaint.setColorFilter(new ColorMatrixColorFilter(cm));}@Overrideprotected void onDraw(Canvas canvas) {canvas.saveLayer(null, mPaint, Canvas.ALL_SAVE_FLAG);super.onDraw(canvas);canvas.restore();}}

如果是ViewGroup类型的需要在dispatchDraw中也做处理。

第二篇
第二篇的方案比较取巧,而且不熟悉源码的话大概没那么容易想到。view.setLayerType(layerType, null);View的硬件加速方法第二个参数可以设置Paint,对Paint设置相应的属性即可达到效果,代码如下:

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

问题
1、第一种方法原文中提到对WebView、视频播放会有影响。
2、第一种方法我自己实践过程中发现View设置了Background会导致Background的饱和度不变,可能是我哪里需要再处理一下。
3、第二种方式我自己再实践过程中发现对视频拍摄有影响,会不断地闪。

APP全局色彩饱和度修改相关推荐

  1. Android APP全局黑白化实现方案

    作者:小帅 链接:https://zhuanlan.zhihu.com/p/587516253 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 在清明节时各大APP都 ...

  2. 安卓APP全局黑白化实现方案

    感谢大家和我一起,在Android世界打怪升级! 在清明节时各大APP都会进行黑白化处理,当时在接到这个需求的时候感觉好麻烦,是不是又要搞一套皮肤? 然而在一系列搜索之后,找到了两位大神(鸿洋.U2t ...

  3. vue 全局动态修改title、keywords、description;vue常用挂载的方法,自定义指令;

    vue 全局动态修改title.keywords.description 路由: {path: "xxx",name: "xxx",component: () ...

  4. Axure高保真家政服务用户端app全局说明+家政服务员工移动端app+家政服务web端管理信息系统(订单管理+服务管理+报表统计+财务管理+营销管理+人员管理)

    作品介绍:把家政带入互联网,这也不算什么新鲜事了.这几年来,在手机下单,上门服务已经是常态.如今的消费已经是趋向于智能消费,例如不想做饭就可以叫外卖,出门不想开车就叫网约车.衣食住行可以靠一部智能手机 ...

  5. android 自动替换资源文件,简单高效的实现Android App全局字体替换

    Android O推出了一项新的功能「Fonts in XML」,借助这项功能,我们能够像使用其他资源文件一样使用字体,比较方便地实现App全局字体的替换. 为了能够在API 14或者以上的设备上使用 ...

  6. APP全局监听系统Home键

    APP全局监听系统Home键 通过自定义Application,在Application中有一个registerActivityLifecycleCallbacks(ActivityLifecycle ...

  7. 怎么修改APP的服务器,安装app后怎么修改服务器地址

    安装app后怎么修改服务器地址 内容精选 换一换 在移动设备上正确安装APP后,就可以通过APP登录NetEco服务器. 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考. ...

  8. android app全局字体,Android app全局字体设置

    相信很多对设计追求极致的开发者们对Android系统的默认字体都会感到不满意,这个时候需要使用自定义的字体,当然可以使用系统提供的Typeface来加载自定义字体,但是,一个个TextView的设置, ...

  9. iOS攻防 - (七)iOS app - 使用Cycript修改微信app

    iOS app - 使用Cycript修改微信app 1.安装Cycript 官网地址:http://www.cycript.org/debs/?C=M;O=D Github地址:https://gi ...

最新文章

  1. Android Build.VERSION.SDK_INT
  2. 电商直播团队,管理好团队就成功了一半
  3. mysql autocommit问题导致的gtid同步变慢
  4. 在Windows系统上安装Ruby On Rails
  5. mybatis 笔记记录
  6. Exchange 2010发现拓扑失败
  7. java 编码实现内存拷贝_java提高篇(六)-----使用序列化实现对象的拷贝
  8. golang 系统级服务器,golang 服务器监控
  9. Rabbitmq工作笔记009---access to vhost ‘/‘ refused for user 权限问题
  10. python beautifulsoup库_Python BeautifulSoup库使用
  11. 斯坦福发布最新NLP处理工具stanfordnlp体验
  12. python模拟别人说话的声音_现在你可以通过深度学习用别人的声音来说话了
  13. 腾讯课堂后台扩容和性能优化实战
  14. c#仿qq好友列表控件
  15. 勒索病毒肆虐的原因分析
  16. 伽卡他卡免费电子教室软件_笔记
  17. 厉害了我的哥!十一月居然有这么多好总结!
  18. Windows 反消息钩子(1)
  19. 利用kettle HTTP Client 获取百度API区域位置内相关信息,并解析json
  20. 电脑335字节是多少位_电脑基本知识(干货)

热门文章

  1. 像素鸟 app 的设计与实现
  2. u盘格式化了怎么恢复数据?
  3. 深圳高交会ZDNS发布域名服务安全威胁管控系统,为互联网入口保驾护航
  4. 机器学习习题(16)
  5. Arena | 用Excel设计的RPG游戏
  6. 微信证据以及数据恢复删除记录恢复交易恢复
  7. 壹号本 深度 linux,壹号本4代迷你笔记本开箱,10.1英寸大小,平板电脑二合一设计...
  8. Python实现办公自动化
  9. toi,atol,strtod,strtol,strtoul实现类型转换
  10. onlyoffice 回调传参数_OnlyOffice 部署与使用