import android.support.v8.renderscript.Allocation;
import android.support.v8.renderscript.RenderScript;
import android.support.v8.renderscript.ScriptIntrinsicBlur;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mRenderScript = RenderScript.create(getContext());
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_weather);
bitmap = blur(bitmap);
mImageWeather.setImageBitmap(bitmap);
}
// 对图片进行高斯模糊
public Bitmap blur(Bitmap bmp) {
Bitmap ret = null;
if (bmp != null) {
// 1. 先用创建一个包含RenderScript的的图片
Allocation aIn = Allocation.createFromBitmap(mRenderScript, bmp);
// 2.
ScriptIntrinsicBlur blur =
ScriptIntrinsicBlur.create(mRenderScript, aIn.getElement());
// 3.
blur.setInput(aIn);
blur.setRadius(1); // {0, 25} , 越大越模糊
// 4.
Allocation aOut =
Allocation.createTyped(mRenderScript, aIn.getType());
blur.forEach(aOut);
// 5.
ret = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Bitmap.Config.ARGB_8888);
aOut.copyTo(ret);
aOut.destroy();
aOut = null;
aIn.destroy();
aIn = null;
}
return ret;
}
我们还需要在 app的gradle中添加:
renderscriptSupportModeEnabled true
renderscriptTargetApi 8