通过布局生成图片
首先效果图
在竖屏的情况下通过,一般情况下,只要布局在页面上可见,并显示全,通过布局生成图片,都可以,但是横屏就不行了,会出现图片显示不完全的情况。
val bitmap =
Bitmap.createBitmap(
decorView.width,
decorView.height,
Bitmap.Config.ARGB_8888
)
val canvas = Canvas()
canvas.setBitmap(bitmap)
decorView.draw(canvas)
val baos = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos)
val inputStream: InputStream = ByteArrayInputStream(baos.toByteArray())
val currentTime = System.currentTimeMillis()
val imageFileName = "IMG_DEEP_SQUAT_SCREEN_${currentTime}.jpg"
在横屏情况下
当布局的高度大于横屏下的高度是会出现保存后的图片不完整如图
通过使用NestedScrollView嵌套布局,命名为clShare
val bitmap =
Bitmap.createBitmap(binding.clShare.widthbinding.clShare.height,Bitmap.Config.ARGB 8888
val canvas = Canvas(bitmap)binding.clShare.draw(canvas)
val baos = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos)
val inputStream: InputStream = ByteArrayInputStream(baos.toByteArray())
val currentTime = System.currentTimeMillis()
val imageFileName = "IMG_DEEP_SQUAT_SCREEN_${currentTime}.jpg"
....//保存图片相关代码
然后保存图片,查看图片就可以了。