核心需要高斯模糊的库

compile 'jp.wasabeef:glide-transformations:2.0.1'

针对于3.7的版本

使用方法为:

//加载背景,
Glide.with(MusicPlayerActivity.this)
.load(service.getImageUri())
.dontAnimate()
.error(R.drawable.no_music_rotate_img)
// 设置高斯模糊,模糊程度(最大25) 缩放比例
.bitmapTransform(new BlurTransformation(this, , ))
.into(allBg);

针对4.+

Glide.with(context)
.load(url)
.apply(RequestOptions.bitmapTransform(new BlurTransformation(,)))
.into(view);
BlurTransformation 类源码:
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.support.annotation.NonNull; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation; import java.security.MessageDigest; import jp.wasabeef.glide.transformations.internal.FastBlur; public class BlurTransformation extends BitmapTransformation { private static final int VERSION = ;
private static final String ID = "BlurTransformation." + VERSION; private static int MAX_RADIUS = ;
private static int DEFAULT_DOWN_SAMPLING = ; private int radius;
private int sampling; public BlurTransformation() {
this(MAX_RADIUS, DEFAULT_DOWN_SAMPLING);
} public BlurTransformation(int radius) {
this(radius, DEFAULT_DOWN_SAMPLING);
} public BlurTransformation(int radius, int sampling) {
this.radius = radius;
this.sampling = sampling;
} @Override
protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {
int width = toTransform.getWidth();
int height = toTransform.getHeight();
int scaledWidth = width / sampling;
int scaledHeight = height / sampling; Bitmap bitmap = pool.get(scaledWidth, scaledHeight, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap);
canvas.scale( / (float) sampling, / (float) sampling);
Paint paint = new Paint();
paint.setFlags(Paint.FILTER_BITMAP_FLAG);
canvas.drawBitmap(toTransform, , , paint);
bitmap = FastBlur.blur(bitmap, radius, true); return bitmap;
} @Override public String toString() {
return "BlurTransformation(radius=" + radius + ", sampling=" + sampling + ")";
} @Override public boolean equals(Object o) {
return o instanceof BlurTransformation &&
((BlurTransformation) o).radius == radius &&
((BlurTransformation) o).sampling == sampling;
} @Override public int hashCode() {
return ID.hashCode() + radius * + sampling * ;
} @Override public void updateDiskCacheKey(@NonNull MessageDigest messageDigest) {
messageDigest.update((ID + radius + sampling).getBytes(CHARSET));
}
}

最新文章

  1. 解决Unable to create new native thread
  2. Counting Bits(Difficulty: Medium)
  3. 修改SharePoint 2013中item Created by 信息
  4. mac 下如何切换jdk的版本
  5. JavaScript 面向对象与原型
  6. 一个可能有用的封闭PGSQL操作的PYTHON函数
  7. Spring框架学习之第8节
  8. [GIF] GIF Loop Coder - Animating with Arrays
  9. Android 周报
  10. LED大屏发布系统
  11. fsck害了我很久了,必须关掉,因为他每次打卡都要推迟数十分钟。
  12. 使用DLL进行不同语言之间的调用(转)
  13. UESTC 1599 wtmsb【优先队列+排序】
  14. SAP中的读访问日志Read Access Logging(RAL)
  15. 嵌入式C实战项目开发技巧:如果对一个有规律的数组表进行位移操作
  16. dummy_backend_queue.go
  17. Redis客户端——Jedis的使用
  18. angular.formJson()
  19. .net WCF WF4.5 状态机、书签与持久化
  20. kubernetes job的原理

热门文章

  1. HDFS HA架构以及源代码引导
  2. [linux]shell中,反引號(`)的应用
  3. 反射 + 配置文件 实现IOC容器
  4. JAVA设计模式之【组合模式】
  5. CodeForces ---596B--Wilbur and Array(贪心模拟)
  6. VC下加载多种格式图片的方法总结IPicture, CxImage, CImage(AtlImage), CPictureEx
  7. zookeeper客户端命令行操作
  8. sql server 查询某数据库中包含某字段的所有表格
  9. JS的数据类型(包含:7种数据类型的介绍、数据类型的转换、数据类型的判断)
  10. 51nod 1770 数数字 找规律,注意进位,时间复杂度O(n)