常用的框架:Blurry模糊库

547 阅读2分钟

在UI设计中,模糊效果经常被用来增强层次感和视觉吸引力,尤其是在移动应用中。今天,我们向你推荐一个专为Android打造的轻量级模糊库——Blurry。这个开源库简单易用,能让你轻松地为界面元素添加专业级别的模糊效果。

1、项目介绍 Blurry是一个强大的Android模糊库,由开发者Daichi Furiya(Wasabeef)创建。它提供了多种模糊效果选项,包括辐射模糊、下采样和颜色过滤等,并支持异步处理和动画效果。只需几行代码,你就能让你的应用具备高端的视觉表现力。

2、项目技术分析 Blurry的核心在于其高效且灵活的模糊算法实现。通过radius参数设置模糊半径,sampling参数进行图像下采样,以及可选的颜色过滤器,开发者可以自定义出各种独特的模糊风格。此外,库还提供了Overlay功能,可以直接将模糊效果叠加到整个视图上,或者通过Into方法将模糊效果应用到指定的图片或视图上。

3、项目及技术应用场景

  • 启动画面:为过渡动画添加模糊背景,提升用户体验。
  • 抽屉菜单:当打开侧滑菜单时,模糊主屏幕提供更好的焦点引导。
  • 浮动按钮(FAB):点击FAB时,以模糊效果显示隐藏的内容。
  • 相册预览:对图片进行快速模糊处理,用于预览或占位符效果。
  • 对话框和通知:增强对话框和通知的视觉层次,使其更加突出。

4、项目特点

  • 兼容性好:支持Android API 21+,适配了大部分现代设备。
  • 灵活性高:提供的多种模糊选项和动画支持,满足不同场景需求。
  • 性能优化:通过下采样技术,减少内存消耗,提高处理速度。
  • 简便的API:简洁明了的使用方式,让开发者能够快速集成并调试。

以上说明转载于:blog.csdn.net/gitblog_000…

GitHub地址:github.com/wasabeef/Bl…

使用方法:

配置

Dependencies
repositories {
  mavenCentral()
}

dependencies {
  implementation 'jp.wasabeef:blurry:4.0.1'
}
方法

Overlay

Parent must be ViewGroup

Blurry.with(context).radius(25).sampling(2).onto(rootView)

Into

// from View
Blurry.with(context).capture(view).into(imageView)
// from Bitmap 
Blurry.with(context).from(bitmap).into(imageView)

Blur Options

  • Radius 最大为25
  • Down Sampling 最大为10
  • Color Filter
  • Asynchronous Support
  • Animation (Overlay Only)
Blurry.with(context)
  .radius(10)
  .sampling(8)
  .color(Color.argb(66, 255, 255, 0))
  .async()
  .animate(500)
  .onto(rootView);

Get a bitmap directly

// Sync
val bitmap = Blurry.with(this)
  .radius(10)
  .sampling(8)
  .capture(findViewById(R.id.right_bottom)).get()
imageView.setImageDrawable(BitmapDrawable(resources, bitmap))

// Async
Blurry.with(this)
  .radius(25)
  .sampling(4)
  .color(Color.argb(66, 255, 255, 0))
  .capture(findViewById(R.id.left_bottom))
  .getAsync {
    imageView.setImageDrawable(BitmapDrawable(resources, it))
  }