我一直在研究如何通过使用RenderEffect对ImageView
中的Bitmap
应用模糊效果。我可以通过setRenderEffect实现这一点。但是,当我尝试使用下面的(hacky)代码从ImageView
中获取Bitmap
时,它没有应用到模糊效果。我认为这是因为该层被应用于ImageView上,而不是底层的位图(无法完全确定)。这引出了我的问题:如何在应用RenderEffect后从渲染在屏幕上的ImageView中获取关联的基础位图?
val testImageView = ImageView(applicationContext)
testImageView.setImageBitmap(someBitmap)
val blurEffect = RenderEffect.createBlurEffect(30.0f, 30.0f, Shader.TileMode.MIRROR)
testImageView.setRenderEffect(blurEffect)
testImageView.invalidate()
val testDrawable = testImageView.drawable as BitmapDrawable
val testBitmap = testDrawable.getBitmap(); // This doesn't have Blur applied to it even though I'd like it to.
使用RenderScript似乎是可行的,但它已经在API 31之后被弃用了,因此我一直在寻找替代方法。