Android 中怎么用高斯模糊来数学 ImageView 中的头像模糊效果?
作者:互联网
两种实现方式:使用 RenderScript
和使用 Glide
。
方法 1:使用 RenderScript
1. 添加依赖
确保 build.gradle
文件中已启用 renderscript
:
android {
...
defaultConfig {
...
renderscriptTargetApi 21
renderscriptSupportModeEnabled true
}
}
Groovy
2. 创建高斯模糊函数
在你的 Activity 或 Fragment 中,创建一个模糊 Bitmap 的函数:
import android.content.Context
import android.graphics.Bitmap
import android.renderscript.*
fun blurBitmap(context: Context, bitmap: Bitmap, blurRadius: Float): Bitmap {
val rs = RenderScript.create(context)
val input = Allocation.createFromBitmap(rs, bitmap)
val output = Allocation.createTyped(rs, input.type)
val script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs))
script.setInput(input)
script.setRadius(blurRadius)
script.output(output)
// 将模糊结果渲染到输出 Allocation 中
output.copyTo(bitmap)
// 清理资源
script.destroy()
input.destroy()
output.destroy()
rs.destroy()
return bitmap
}
Kotlin
3. 使用模糊函数
加载头像并模糊:
val imageView: ImageView = findViewById(R.id.imageView) // 替换为你的 ImageView
val originalBitmap = BitmapFactory.decodeResource(resources, R.drawable.your_avatar) // 替换为你的头像资源
val blurRadius = 10f // 设置模糊半径
val blurredBitmap = blurBitmap(this, originalBitmap.copy(originalBitmap.config, true), blurRadius)
imageView.setImageBitmap(blurredBitmap)
Kotlin
方法 2:使用 Glide
使用 Glide
来实现更简单的头像模糊效果。
1. 添加 Glide 依赖
在你的 build.gradle
文件中添加 Glide 的依赖:
dependencies {
implementation 'com.github.bumptech.glide:glide:4.12.0'
kapt 'com.github.bumptech.glide:compiler:4.12.0'
}
Groovy
2. 使用 Glide 模糊处头像
使用 Glide
来加载和模糊头像:
import com.bumptech.glide.Glide
import com.bumptech.glide.load.resource.bitmap.BlurTransformation
import com.bumptech.glide.request.RequestOptions
Glide.with(this)
.load(R.drawable.your_avatar) // 替换为你的头像资源或 URL
.apply(RequestOptions.bitmapTransform(BlurTransformation(25, 3))) // 参数1是模糊半径,参数2是缩放因子
.into(imageView)
Kotlin
小结
- RenderScript 方法适合需要更多自定义的高斯模糊效果,但代码相对较多。
- Glide 方法简单易用,适合快速开发和常见使用场景。
标签: 来源: