Android项目实战(五十七):Glide 高斯模糊效果
2024-08-31 14:12:49
核心需要高斯模糊的库
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));
}
}
最新文章
- 解决Unable to create new native thread
- Counting Bits(Difficulty: Medium)
- 修改SharePoint 2013中item Created by 信息
- mac 下如何切换jdk的版本
- JavaScript 面向对象与原型
- 一个可能有用的封闭PGSQL操作的PYTHON函数
- Spring框架学习之第8节
- [GIF] GIF Loop Coder - Animating with Arrays
- Android 周报
- LED大屏发布系统
- fsck害了我很久了,必须关掉,因为他每次打卡都要推迟数十分钟。
- 使用DLL进行不同语言之间的调用(转)
- UESTC 1599 wtmsb【优先队列+排序】
- SAP中的读访问日志Read Access Logging(RAL)
- 嵌入式C实战项目开发技巧:如果对一个有规律的数组表进行位移操作
- dummy_backend_queue.go
- Redis客户端——Jedis的使用
- angular.formJson()
- .net WCF WF4.5 状态机、书签与持久化
- kubernetes job的原理
热门文章
- HDFS HA架构以及源代码引导
- [linux]shell中,反引號(`)的应用
- 反射 + 配置文件 实现IOC容器
- JAVA设计模式之【组合模式】
- CodeForces ---596B--Wilbur and Array(贪心模拟)
- VC下加载多种格式图片的方法总结IPicture, CxImage, CImage(AtlImage), CPictureEx
- zookeeper客户端命令行操作
- sql server 查询某数据库中包含某字段的所有表格
- JS的数据类型(包含:7种数据类型的介绍、数据类型的转换、数据类型的判断)
- 51nod 1770 数数字 找规律,注意进位,时间复杂度O(n)