对PorterDuffXferMode的理解
说起Xfermode,网上随便一搜就有很多解释。诸多解释中都会包含这张图,看的确实明白,用起来的时候才知到有多坑。
主要多亏了PorterDuffXferMode不正确的真正原因PorterDuffXferMode深入试验)这篇文章,才不至于摔死在坑中。
可以解决的问题如果你在使用XferMode的过程中遇到了 参数设置无效,不显示图案,显示图案不正确,显示图案有时候正确有时候不正确,显示图案和参数不符…等一系列花里胡哨的问题时候,不妨看看本文。
结论先说结论,PorterDuffXferMode的正常使用需满足以下条件:
关闭硬件加速
背景色为透明
必须使用bitmap绘制!!(这里解释了为什么有的同学用drawRect,drwaCiclebug一片的问题😖
上图中xferMode的所有效果都是在两个bitmap重合的区域发生,所以一般情况下,两个bitmap的位置和大小尽量保持一致。
测试代码若是信不过这个结论,在下有代码一份可供参考使用:
12345678910111213141516171819202122232425262728293031class XFerMode ...
单例模式
单例模式单例模式分为两种:饿汉式 和 懒汉式。
参考:知乎-如何学习设计模式?
饿汉式(因为很饿,所以在变量声明时就初始化)
12345678910class XX{ private static XX instance = new XX (); private XX(){} public static XX getInstance(){ return instance; }}
缺点:即使这个单例类不需要使用,也会在类加载的时候被创建出来。增大了内存开销,浪费内存。
是线程安全的。
跟着下面的几种方式全属于懒汉式了,只不过有几种变形而已。
懒汉式(先声明一个null变量,在对象使用的时候变量才被初始化)
123456789101112class XX { private static XX instance ; private XX(){} public static XX getInst ...
世界格局的起源
自近代以来,全球交流变得愈加频繁,伴随着霸权制霸,两极分化,多级争端以及局部地区冲突,最终衍变成为了当今的政治格局。而人类文明的前进步伐从未停止,最终会发展成什么样子,我们无从得知。但对于当今局势,最值得思考的一个问题是:为什么会衍变为这样的局势?这其中有哪些力量在起作用?
回顾历史,我们将视角延伸到久远的过去,人类文明出现的那一天,试图用发展的眼光去找寻问题的答案。
国家的形成人类文明的发展离不开的一个重要因素是合作,整个文明进程就是合作的有效化与科学化发展的过程,从最初的单打独斗到血亲联合起来的聚落,再到同姓宗族聚集起来的部落,再到基于共同祖先祭祀的大部落,最终出现由非人格化制度,或者说契约制约的国家。
在国家形成的过程中,战争占据了非常重要的作用。首先,因为战争的侵略性导致生活在同一聚落的民众需要团结起来,而通过牺牲一定的自由来给予领袖一定的权力,来保障自身的生命财产安全是至关重要的。其次,想要取得战争的胜利就要发展最适合战争时期资源最大化利用的政治秩序,开启技术革命。最后,战争的威胁促使周边国家学习先进的国家的经验,在相互竞争中前行。
国家机器的主要矛盾在一个相对成熟的国家秩序 ...
retrofit:Unable to create call adapter for class java.lang.Object
retrofit:Unable to create call adapter for class java.lang.Object原因:Retrofit中未找到Object类相对应的CallAdapter
解决方法:
1 看callAdapterFactory是否添加正确
2 retrofit接口方法不能suspend
1234interface Api{ @GET("auth") suspend fun getTokenAsync(): Deferred<Bean>}
suspend fun getTokenAsync(): Deferred
原理:retrofit源码中用到动态代理,返回值类型存放在动态代理的method方法中。加了suspend关键字后method.getReturnType恒为Object类型(再问为什么我也不知道了)
retrofit:Unable to create call adapter for class java.lang.Object
retrofit: Expected Android API level 21+ but was 19原因:新版retrofit中某个ssl相关方法在api21以下不适用。
解决方法:将minSdkVersion改为21 或者 将okhttp版本改到3.12版本
注:如果用的retrofit,retrofit版本一样需要降低,因为retrofit中带有高版本okhttp包
Hexo博客美化之蝴蝶(butterfly)主题魔改
作者: 远方有你,伴余生
出处:https://www.cnblogs.com/glassysky/p/13394579.html
Hexo博客美化之蝴蝶(butterfly)主题魔改 Hexo是轻量级的极客博客,因为它简便,轻巧,扩展性强,搭建部署方便深受广大人们的喜爱。各种琳琅满路的Hexo主题也是被各种大佬开发出来,十分钦佩,向大佬仰望,大声称赞:流批!!!
我在翻看各种主题后,便选择了蝴蝶这个主题,蝴蝶主题是由大佬Jerry制作的,其简洁,具有现代风格,扩展强,配置简单明了将我所吸引。
效果图:
蝴蝶主题github
于是我按照主题的文档完成主题配置,参照其他butterfly使用者,又添加了一点魔改。为了方便大家,减少配置上花的时间,我就把脚手架代码放到gitee上,欢迎大家下载。
传送门
魔改主题效果
下面说一下我的配置步骤
首先下载主题#123456Copy在你的博客路径打开终端,用git下载,如果下载太慢,可以在com后面追加.cnpm.org,这个是淘宝镜像源git clone -b master https://github.com ...