Android: ScriptIntrinsicBlur error



我想模糊ImageView

此代码不起作用,并且ScriptIntrinsicBlur行强制关闭

模糊类 :

private static final float BLUR_RADIUS = 20f;

    public Bitmap blur(Bitmap image) {
        if (null == image)
            return null;
        Bitmap outputBitmap = Bitmap.createBitmap(image);
        final RenderScript renderScript = RenderScript.create(this);
        Allocation tmpIn = Allocation.createFromBitmap(renderScript, image);
        Allocation tmpOut = Allocation.createFromBitmap(renderScript, outputBitmap);
        ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript));
        theIntrinsic.setRadius(BLUR_RADIUS);
        theIntrinsic.setInput(tmpIn);
        theIntrinsic.forEach(tmpOut);
        tmpOut.copyTo(outputBitmap);
        return outputBitmap;
    }

设置模糊代码:

bmp = BitmapFactory.decodeStream(urlImage.openConnection().getInputStream());
bmp = blur(bmp);
imgPost.setImageBitmap(bmp);

和错误日志:

https://i.stack.imgur.com/sL2BT.jpg

根据 ScriptIntrinsicBlur 文档,该类是在 API 17 中添加的,因此在此之前不存在。您可以使用 Renderscript 支持库访问 Renderscript 返回 API 8,包括 android.support.v8.renderscript.ScriptIntrinsicBlur

最新更新