模糊背景现在已经很流行了,固定图片的模糊可以让设计师处理,那么动态模糊,或者每个用户个人主页用自己头像的图片模糊做背景,这就需要我们程序员通过代码来实现了,实现的方案在github上已经有比较完善和得到大家公认的开源项目:
BlurEffectForAndroidDesign和Blurry 。前者主要通过判断系统版本号,大于API17的时候调系统的API renderscript处理,否则采用Java实现的方式对一个bitmap对象进行高斯模糊,把该模块封装成一个工具类。后者则进一步封装一个功能强大,使用简单的库,有点类似UIL , Volley ,Picasso这些图片加载库,在内部已经封装了线程池,通过现场对图片进行高斯模糊,并且通过传入具体view对象,来直接在回调结果里把高斯模糊后的bitmap加载到你需要的view控件上,主要用法如下:
Blurry.with(context).radius(25).sampling(2).onto((ViewGroup) rootView);
Blurry.with(context).capture(view).into(imageView);
对于第二种在github过千star的项目,不用过多介绍,直接拿下来用,基本上也没多大问题了,现在主要对第一种方式,结合最近做的一个小项目来分享一点经验,也算是自己的学习笔记。项目的需求是获取一张相册的图片,加载到界面上,并且在界面上有一个拖动的滑条,动态来改变模糊半径值,结果显示出来。