APP全局色彩饱和度修改
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全局色彩饱和度修改相关推荐
- Android APP全局黑白化实现方案
作者:小帅 链接:https://zhuanlan.zhihu.com/p/587516253 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 在清明节时各大APP都 ...
- 安卓APP全局黑白化实现方案
感谢大家和我一起,在Android世界打怪升级! 在清明节时各大APP都会进行黑白化处理,当时在接到这个需求的时候感觉好麻烦,是不是又要搞一套皮肤? 然而在一系列搜索之后,找到了两位大神(鸿洋.U2t ...
- vue 全局动态修改title、keywords、description;vue常用挂载的方法,自定义指令;
vue 全局动态修改title.keywords.description 路由: {path: "xxx",name: "xxx",component: () ...
- Axure高保真家政服务用户端app全局说明+家政服务员工移动端app+家政服务web端管理信息系统(订单管理+服务管理+报表统计+财务管理+营销管理+人员管理)
作品介绍:把家政带入互联网,这也不算什么新鲜事了.这几年来,在手机下单,上门服务已经是常态.如今的消费已经是趋向于智能消费,例如不想做饭就可以叫外卖,出门不想开车就叫网约车.衣食住行可以靠一部智能手机 ...
- android 自动替换资源文件,简单高效的实现Android App全局字体替换
Android O推出了一项新的功能「Fonts in XML」,借助这项功能,我们能够像使用其他资源文件一样使用字体,比较方便地实现App全局字体的替换. 为了能够在API 14或者以上的设备上使用 ...
- APP全局监听系统Home键
APP全局监听系统Home键 通过自定义Application,在Application中有一个registerActivityLifecycleCallbacks(ActivityLifecycle ...
- 怎么修改APP的服务器,安装app后怎么修改服务器地址
安装app后怎么修改服务器地址 内容精选 换一换 在移动设备上正确安装APP后,就可以通过APP登录NetEco服务器. 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考. ...
- android app全局字体,Android app全局字体设置
相信很多对设计追求极致的开发者们对Android系统的默认字体都会感到不满意,这个时候需要使用自定义的字体,当然可以使用系统提供的Typeface来加载自定义字体,但是,一个个TextView的设置, ...
- iOS攻防 - (七)iOS app - 使用Cycript修改微信app
iOS app - 使用Cycript修改微信app 1.安装Cycript 官网地址:http://www.cycript.org/debs/?C=M;O=D Github地址:https://gi ...
最新文章
- Android Build.VERSION.SDK_INT
- 电商直播团队,管理好团队就成功了一半
- mysql autocommit问题导致的gtid同步变慢
- 在Windows系统上安装Ruby On Rails
- mybatis 笔记记录
- Exchange 2010发现拓扑失败
- java 编码实现内存拷贝_java提高篇(六)-----使用序列化实现对象的拷贝
- golang 系统级服务器,golang 服务器监控
- Rabbitmq工作笔记009---access to vhost ‘/‘ refused for user 权限问题
- python beautifulsoup库_Python BeautifulSoup库使用
- 斯坦福发布最新NLP处理工具stanfordnlp体验
- python模拟别人说话的声音_现在你可以通过深度学习用别人的声音来说话了
- 腾讯课堂后台扩容和性能优化实战
- c#仿qq好友列表控件
- 勒索病毒肆虐的原因分析
- 伽卡他卡免费电子教室软件_笔记
- 厉害了我的哥!十一月居然有这么多好总结!
- Windows 反消息钩子(1)
- 利用kettle HTTP Client 获取百度API区域位置内相关信息,并解析json
- 电脑335字节是多少位_电脑基本知识(干货)
热门文章
- 像素鸟 app 的设计与实现
- u盘格式化了怎么恢复数据?
- 深圳高交会ZDNS发布域名服务安全威胁管控系统,为互联网入口保驾护航
- 机器学习习题(16)
- Arena | 用Excel设计的RPG游戏
- 微信证据以及数据恢复删除记录恢复交易恢复
- 壹号本 深度 linux,壹号本4代迷你笔记本开箱,10.1英寸大小,平板电脑二合一设计...
- Python实现办公自动化
- toi,atol,strtod,strtol,strtoul实现类型转换
- onlyoffice 回调传参数_OnlyOffice 部署与使用