canvas.drawBitmap-软件渲染不支持硬件位图 [英] canvas.drawBitmap - Software rendering doesn't support hardware bitmaps
本文介绍了canvas.drawBitmap-软件渲染不支持硬件位图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
简单有趣
fun getCircleBitmap(bitmap: Bitmap, recycle: Boolean): Bitmap {
val paint = Paint()
paint.isAntiAlias = true
paint.color = Color.WHITE
paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_IN)
val rect = Rect(0, 0, bitmap.width, bitmap.height)
val rectF = RectF(rect)
val output = Bitmap.createBitmap(bitmap.width, bitmap.height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(output)
canvas.drawARGB(0, 0, 0, 0)
canvas.drawOval(rectF, paint)
canvas.drawBitmap(bitmap, rect, rect, paint)
if (recycle) {
bitmap.recycle()
}
return output
}
Taget API29.仿真器API28.Kotlin1.3.40. 大约一个月前,这种乐趣奏效了.但是现在出现在"canvas.drawBitmap"错误软件渲染不支持硬件位图".尝试android:hardwareAccelerated ="false"-相同的错误.为什么?
Taget API 29. Emulator API 28. Kotlin 1.3.40. About month ago this fun worked. But now on "canvas.drawBitmap" error "Software rendering doesn't support hardware bitmaps". Try android:hardwareAccelerated="false" - same error. Why?
推荐答案
所以,我的解决方案:
fun getCircleBitmapDrawable(bitmap: Bitmap): RoundedBitmapDrawable {
val round = RoundedBitmapDrawableFactory.create(context.resources, bitmap)
round.isCircular = true
round.setAntiAlias(true)
return round
}
这篇关于canvas.drawBitmap-软件渲染不支持硬件位图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文