/**
* 獲取網絡類型
*/
public static void blurBgPic(final Context context, final ImageView view, final String url, int defResId) {
try {
if (context == null || view == null) {
return;
}
if (TextUtils.isEmpty(url)) {
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), defResId);
int scaleRatio = 10;
// int blurRadius = 8;
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap,
bitmap.getWidth() / scaleRatio,
bitmap.getHeight() / scaleRatio,
false);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
view.setImageBitmap(blurBitmap(scaledBitmap, context.getApplicationContext()));
}else{
view.setImageBitmap(scaledBitmap);
}
} else {
Glide.with(context.getApplicationContext())
.load(url)
.asBitmap()
.into(new SimpleTarget<Bitmap>(Target.SIZE_ORIGINAL,Target.SIZE_ORIGINAL) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
if (resource == null) {
return;
}
int scaleRatio = 10;
// int blurRadius = 8;
Bitmap scaledBitmap = Bitmap.createScaledBitmap(resource,
resource.getWidth() / scaleRatio,
resource.getHeight() / scaleRatio,
false);
// Bitmap blurBitmap = FastBlur.doBlur(scaledBitmap, blurRadius, true);
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// imageView.setImageBitmap(blurBitmap);
Bitmap bitmap = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
bitmap = blurBitmap(scaledBitmap, context.getApplicationContext());
}else{
bitmap = scaledBitmap;
}
final Bitmap finalBitmap = bitmap;
view.post(new Runnable() {
@Override
public void run() {
view.setImageBitmap(finalBitmap);
}
});
}
});
}
}catch (OutOfMemoryError e){
}
}
// /**
private static Bitmap blurBitmap(Bitmap resource, Context context) {
// Matrix matrix = new Matrix();
// matrix.setScale(0.5f,0.5f);
Bitmap bitmap = Bitmap.createBitmap(resource.getWidth(), resource.getHeight(), Bitmap.Config.ARGB_8888);
// Bitmap bitmap = Bitmap.createBitmap(bitmapp,0,0,bitmapp.getWidth(),bitmapp.getHeight(),matrix,true);
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
paint.setFlags(Paint.FILTER_BITMAP_FLAG | Paint.ANTI_ALIAS_FLAG);
PorterDuffColorFilter filter =
new PorterDuffColorFilter( Color.TRANSPARENT, PorterDuff.Mode.SRC_ATOP);
paint.setColorFilter(filter);
canvas.drawBitmap(resource, 0, 0, paint);
RenderScript rs = RenderScript.create(context.getApplicationContext());
Allocation input = Allocation.createFromBitmap(rs, bitmap, Allocation.MipmapControl.MIPMAP_NONE,
Allocation.USAGE_SCRIPT);
Allocation output = Allocation.createTyped(rs, input.getType());
ScriptIntrinsicBlur blur = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
blur.setInput(input);
blur.setRadius(10);
blur.forEach(output);
output.copyTo(bitmap);
rs.destroy();
return bitmap;
}