SpannableStringBuilder не отображает картинки

я получаю изображение с камеры или из галереи и обрабатываю его в onActivityResult, в нем всё работает, картинка вставляется в текст, вот код для картинки из галереи(с камеры примерно так же):

if (requestCode == this.requestCode && resultCode == Activity.RESULT_OK && data != null) {
        val imageUri: Uri? = data.data
        //photo from gallery
        if (imageUri != null) {
            try {
                contentResolver.notifyChange(imageUri, null)
                val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, imageUri)

                val bitmapDrawable = BitmapDrawable(bitmap)
                bitmapDrawable.setBounds(
                    0,
                    0,
                    edit.width,
                    (edit.width.toDouble() * (bitmap.height.toDouble() / bitmap.width.toDouble())).toInt()
                )
                edit.append("\n")

                var selectionCursor = edit.selectionStart

                uris[bitmap] = imageUri

                edit.text.insert(selectionCursor, "%#{[img]}@$")
                selectionCursor = edit.selectionStart

                val builder = SpannableStringBuilder(edit.text)
                builder.setSpan(
                    ImageSpan(bitmapDrawable),
                    selectionCursor - "%#{[img]}@$".length,
                    selectionCursor,
                    1
                )

                edit.text = builder
                edit.setSelection(selectionCursor)
                edit.append("\n")
                edit.requestFocus()

            } catch (e: FileNotFoundException) {
                e.printStackTrace()
            }
        } 
    }

но когда я пытаюсь использовать тот же Uri, чтобы вставить картинку, она не отображается, хотя делаю всё то же самое, вот код:

@Suppress("DEPRECATION")
private fun onCreateSpan(index:Int, uri: Uri){ //function for get images in upgrade mod
    contentResolver.notifyChange(uri, null)
    val bitmap = MediaStore.Images.Media.getBitmap(contentResolver, uri) //get Bitmap
    val bitmapDrawable = BitmapDrawable(bitmap) //get drawable from bitmap
    bitmapDrawable.setBounds(
        0,
        0,
        edit.width,
        (edit.width.toDouble() * (bitmap.height.toDouble() / bitmap.width.toDouble())).toInt()
    )
    val builder = SpannableStringBuilder(edit.text)
    builder.setSpan(
        ImageSpan(bitmapDrawable, ImageSpan.ALIGN_BASELINE),
        index,
        index+"%#{[img]}@$".length,
        Spannable.SPAN_INCLUSIVE_EXCLUSIVE
    )
    edit.text = builder
    edit.setSelection(edit.selectionStart)
    edit.requestFocus()
}

важно понимать, что "%#{[img]}@$" заменяется, но вместо него пустота, а должно быть изображение


Ответы (0 шт):