Android中的Blur效果

2017-02-24  本文已影响1153人  卖梦想的男孩

Android的Blur效果一直比较蛋疼,早期主要是通过Java算法来实现,后来有人又实现了C版本,算是提高了一部分效率。

Renderscript是Android平台上进行高性能计算的框架,是从Android3.0开始引入的,但是更新后对于模糊计算的类支持4.2(api 17+),如果要在低版本上使用,可以使用支持库v8.renderscript,支持Android2.2(API level 8+)。

android{
defaultConfig {
        renderscriptTargetApi 23 //设置目标的版本
        renderscriptSupportModeEnabled  true //启用兼容模式
}
}

模糊图片示例:

 public Bitmap blur(Context context, Bitmap srcBitmap, int radius) {
        Bitmap distBitmap= sentBitmap.copy(srcBitmap.getConfig(), true);
        final RenderScript rs = RenderScript.create(context);
        final Allocation input = Allocation.createFromBitmap(rs, srcBitmap, Allocation.MipmapControl.MIPMAP_NONE,
                Allocation.USAGE_SCRIPT);
        final Allocation output = Allocation.createTyped(rs, input.getType());
        final ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
        script.setRadius(radius);
        script.setInput(input);
        script.forEach(output);
        output.copyTo(distBitmap);

        //do some release
        srcBitmap.recycle();
        input.destroy();
        output.destroy();
        script.destroy();
        rs.destroy();

        return distBitmap;
    }

当然也有好多轮子可以带你开车,自行到站上车。
Blurry
500px-android-blur

上一篇下一篇

猜你喜欢

热点阅读