Для создания снимка экрана вы можете использовать эту библиотеку
implementation 'com.github.MindorksOpenSource:screenshot:v0.0.1'
А для создания снимка экрана просто вызывайте эту функцию по нажатию кнопки или по любому другому событию
var b = Screenshot.with(activity!!).setView(rl_imageText).setQuality(Quality.HIGH).getScreenshot()
Примечание: rl_imageText = Это идентификатор моего xml относительного макета, на котором я делаю снимок экрана.
Он предоставит вам растровое изображение снимка экрана и для сохранения его в хранилище или получения пути используйте ниже упомянутая функция
private fun getImageUriFromBitmap(context: Context, bitmap: Bitmap): Uri {
val bytes = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes)
val path = MediaStore.Images.Media.insertImage(context.contentResolver, bitmap,"Title",null)
return Uri.parse(path.toString())
}
Примечание: пожалуйста, укажите, не будет ли она работать, чтобы я предоставил вам другое решение.