Android 背景图流行使用高斯模糊效果,界面效果会比较好看。分析各种实现方式,实现网易云音乐图片加载高斯模糊背景。

注意:请更新 fresco 版本,内部已实现 BlurPostProcessor

使用方式如下:

ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(SINGER_URL))        .setPostprocessor(new BlurPostProcessor(10, this, 1))        .build();PipelineDraweeController controller = (PipelineDraweeController)Fresco.newDraweeControllerBuilder()        .setImageRequest(request)        .setOldController(mBlurView.getController())        .build();mBlurView.setController(controller);

源码:android-fresco-blur


高斯模糊实现方式

  • JavaBlur
  • NativeBlur
  • RenderScriptBlur

选择合适的模糊技术

性能分析直接参考 Android高级模糊技术,结合实际开发情况,本文只针对 NativeBlur 结合 Fresco 图片修改 BasePostprocessor 实现高斯模糊。

代码实践

FastBlurPostprocessor 实现对图片的高斯模糊处理

package com.android.blur;import android.graphics.Bitmap;import com.enrique.stackblur.NativeBlurProcess;import com.facebook.imagepipeline.request.BasePostprocessor;public class FastBlurPostprocessor extends BasePostprocessor {        private float mRadius;        public FastBlurPostprocessor(float blurRadius) {        this.mRadius = blurRadius;    }    public void process(Bitmap bitmap) {        try {            bitmap.setHasAlpha(true);            NativeBlurProcess blur = new NativeBlurProcess();            blur.blur(bitmap, mRadius);        } catch (Exception e) {            e.printStackTrace();        }    }    public String getName() {        return "FastBlurPostprocessor";    }}

修改图片

ImageRequest request = ImageRequestBuilder.newBuilderWithSource(Uri.parse(SINGER_URL))        .setPostprocessor(new FastBlurPostprocessor(60f))        .build();PipelineDraweeController controller = (PipelineDraweeController)Fresco.newDraweeControllerBuilder().setImageRequest(request)        .setOldController(mBlurView.getController())        .build();mBlurView.setController(controller);

更多相关文章

  1. Android滑动页面导航效果: PagerSlidingTabStrip
  2. 一个切换的Widget
  3. 设置popupwindow弹出后的背景透明效果
  4. 据说年薪30万的Android程序员必须知道事
  5. 个性缩放图片NinePatchDrawable
  6. Android第三方开源FloatingActionButton(com.getbase.floatingact
  7. android桌面快捷方式创建无标题文章
  8. Android(安卓)SlidingMenu实现沉浸式状态栏
  9. android 检查能否上网

随机推荐

  1. android之Layout(一)
  2. Android(安卓)启动页面优化 (白屏 、等待
  3. Android中GridView使用
  4. Android上鲜为人知的UI控件介绍和使用
  5. Android(安卓)Studio初学习体会
  6. android语音识别技术
  7. Android开发技巧:动态创建UI界面
  8. Android(安卓)关机流程分析-----(2)JNI和ke
  9. 如何使用命令行编译运行cocos2d-x的andro
  10. Android——四种AterDialog