package yifeiyuan.practice.practicedemos.fastblur;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.renderscript.Allocation;
import android.renderscript.Element;
import android.renderscript.RenderScript;
import android.renderscript.ScriptIntrinsicBlur;
import android.util.Log;
import android.widget.Button;
import android.widget.ImageView;
import butterknife.InjectView;
import yifeiyuan.practice.practicedemos.R;
import yifeiyuan.practice.practicedemos.base.ToolbarActivity;
public class FastBlurActivity extends ToolbarActivity {
@InjectView(R.id.btn_start_blur)
Button mBtnStartBlur;
@InjectView(R.id.iv_blur)
ImageView mIvBlur;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fast_blur);
// FastBlur 用的时候 有些需要copy之后才行
// Bitmap bitmap = sentBitmap.copy(Bitmap.Config.ARGB_8888, true);
mBtnStartBlur.setOnClickListener(v -> {
mIvBlur.buildDrawingCache();
Bitmap bitmap = FastBlur.doBlur(mIvBlur.getDrawingCache(), 20, true);
mIvBlur.setImageBitmap(bitmap);
});
}
/**
* 有些手机不支持....so 不能用
*
* @param sentBitmap
* @param radius
*/
private void RenderScriptblur(Bitmap sentBitmap, int radius) {
long start = System.currentTimeMillis();
Bitmap bitmap = sentBitmap.copy(sentBitmap.getConfig(), true);
final RenderScript rs = RenderScript.create(FastBlurActivity.this);
final Allocation input = Allocation.createFromBitmap(rs, sentBitmap, 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 /* e.g. 3.f */);
script.setInput(input);
script.forEach(output);
output.copyTo(bitmap);
mIvBlur.setImageBitmap(bitmap);
long end = System.currentTimeMillis();
Log.v(TAG, "fastblur time:" + (end - start));
}
}