效果(解决方法在最后):
image.png
代码生成bitmap
/**
* 该方式原理主要是:View组件显示的内容可以通过cache机制保存为bitmap
*/
fun createBitmapFromView(view: View): Bitmap? {
var bitmap: Bitmap? = null
//开启view缓存bitmap
view.setDrawingCacheEnabled(true)
//设置view缓存Bitmap质量
view.setDrawingCacheQuality(DRAWING_CACHE_QUALITY_HIGH)
//获取缓存的bitmap
val cache: Bitmap = view.getDrawingCache()
if (cache != null && !cache.isRecycled) {
bitmap = Bitmap.createBitmap(cache)
bitmap.copy(Bitmap.Config.ARGB_8888, true)
}
//销毁view缓存bitmap
view.destroyDrawingCache()
//关闭view缓存bitmap
view.setDrawingCacheEnabled(false)
return bitmap
}
创建File
/**