美文网首页
Android中的Blur效果

Android中的Blur效果

作者: 卖梦想的男孩 | 来源:发表于2017-02-24 10:17 被阅读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

    相关文章

      网友评论

          本文标题:Android中的Blur效果

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