在Android中,使用BlurMaskFilter
可以實現動態模糊效果。以下是一個簡單的示例,展示了如何使用BlurMaskFilter
對圖像進行處理:
build.gradle
文件中添加了AndroidX Core庫的依賴:dependencies {
implementation 'androidx.core:core-ktx:1.7.0'
}
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
的顯示內容。
你可以根據需要調整模糊半徑和樣式,以實現不同程度的模糊效果。