在Android中,使用BlurMaskFilter
可以实现动态模糊效果。以下是一个简单的示例,展示了如何使用BlurMaskFilter
对图像进行处理:
- 首先,确保你已经在项目的
build.gradle
文件中添加了AndroidX Core库的依赖:
dependencies { implementation 'androidx.core:core-ktx:1.7.0' }
- 然后,在你的Activity或Fragment中,创建一个
ImageView
来显示模糊后的图像,并设置一个点击事件监听器来触发模糊操作:
import android.graphics.BlurMaskFilter
import android.graphics.Color
import android.os.Bundle
import android.view.View
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
imageView.setOnClickListener {
applyBlur()
}
}
private fun applyBlur() {
val radius = 20f // 模糊半径,可以根据需要调整
val blurMaskFilter = BlurMaskFilter(radius, BlurMaskFilter.BlurStyle.NORMAL)
val bitmap = imageView.drawable?.toBitmap() ?: return@applyBlur
val blurredBitmap = Bitmap.createBitmap(bitmap.width, bitmap.height, bitmap.config)
val canvas = Canvas(blurredBitmap)
canvas.drawBitmap(bitmap, 0f, 0f, null)
canvas.drawColor(Color.BLACK, PorterDuff.Mode.MULTIPLY)
canvas.drawBitmap(blurredBitmap, 0f, 0f, blurMaskFilter)
imageView.setImageBitmap(blurredBitmap)
}
}
在这个示例中,我们首先创建了一个ImageView
,并为其设置了一个点击事件监听器。当用户点击ImageView
时,会触发applyBlur()
方法。在这个方法中,我们创建了一个BlurMaskFilter
实例,设置了模糊半径,然后使用Canvas
和Bitmap
对原始图像进行模糊处理。最后,我们将模糊后的图像设置为ImageView
的显示内容。
你可以根据需要调整模糊半径和样式,以实现不同程度的模糊效果。