Android 网易云音乐图片高斯模糊

作者: simpleeeeee | 来源:发表于2016-04-18 19:03 被阅读2475次

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

高斯模糊实现方式
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);

源码:android-fresco-blur

引用资料
NativeStackBlur
android-stackblur
blurring
fresco

相关文章

网友评论

  • 20a565902177:请问oom应该怎么解决,一个界面中有一张高斯模糊图片,连续开启这个页面20次就oom了

本文标题:Android 网易云音乐图片高斯模糊

本文链接:https://www.haomeiwen.com/subject/iyezhttx.html