技术分享

如何优雅地在Android上实现iOS的图片预览

用过 iOS 的都知道,拟物理的回弹效果在上面非常普遍,因为这是 iOS 系统支持的一套 UI 框架,但是 Android 就没有了,就拿图片查看器来讲,iOS 的效果就是感觉一张图片被绑定在了弹簧装置上,滑动很自然,Android 没有自带的图片查看器,需要自己实现 市面上主流的图片查看器都没有回弹的效果,一部分原因是没有这个需求,还有一部分是实现麻烦,这里讲述一个个人认为最好的方案
如何优雅地在Android上实现iOS的图片预览

Android 快速模糊效果

iOS系统自带了模糊效果,但是Android却没有,网上有很多实现方式,基本上都是用 faseBlur 算法,或者使用 RenderScript。 本文用的也是这两种方法,当 api < 17 的时候用 faseBlur 算法,当 api >= 17 的时候用 RenderScript。不同点是,网上基本都是通过获取一张和视图大小相同的 Bitmap 然后压缩、模糊。现在手机的屏幕分辨率都很高,如果使用这种方法的话,第一次创建的 Bitmap 将会占用很大一部分内存,很容易出现 OOM 现象。因为我们做模糊处理,所以只需要一张视图的缩略图即可,不需要一张高清的图片,有没有办法获取到 View 的缩略图呢?答案是有的。
Android 快速模糊效果

Android高仿Chrome侧滑返回效果

在iOS上的chrome中有侧滑返回上一个页面的功能,感觉蛮好用的,刚好Android没有自带的侧滑返回效果,如果使用透明的Activity的话比较浪费性能,所以打算在实现一个简单的DragBackActivity,拖动的效果模仿iOS上的Chrome侧滑返回。
Android高仿Chrome侧滑返回效果

Cocos多模块热更新方案

最近由于项目要从c++移植到js,为的就是热更新。c++因为种种原因无法热更新,所以转到脚本方案了。cocos2dx-js中热更新的代码已经帮我们写好了,我们只需要写一下配置文件就行了。 然而官方的配置文件的文档有点落后,这里有一份好的Cocos2dxJS 热更新 公司的项目是一个棋牌休闲游戏,内部有很多模块(大厅模块一个、若干游戏模块)。需求为游戏需要玩才下载,所以要针对不用的模块编写不同的配置文件。这种机械性的工作当然是交给计算机做啦,写一个脚本完事。
Cocos多模块热更新方案
事件分发机制源码解析(二)

Cocos内存管理源码解析

前段时间在捕鱼的地方使用对象池的时候,因为对cocos里面的autorelease机制不熟悉,导致了内存的泄露,特写次文章记录一下。 在cocos2dx-3.8中的自动内存管理机制是借助引用计数来实现的。对于老版本的cocos引用计数使用的是CCObject,但是这个类在后面就被弃用了,使用Ref来代替,cocos内几乎所有的类都是继承自Ref。Ref基本的原理就是其内部存在一个引用计数_referenceCount,当这个引用计数为0的时候,就会被释放。引用计数通过retain,release来操作。
Cocos内存管理源码解析
Cocos 事件分发机制源码解析(一)