「新手」Android EditText 显示图像
目录
使用 ImageSpan 的方式设置
1 环境
Android 10
Android Studio 4.2.1
Kotlin
2 用 drawable 生成 ImageSpan
val imageSpan = ImageSpan(this, R.drawable.xxx)
val imageSpan = ImageSpan(this, R.drawable.xxx, ImageSpan.ALIGN_BASELINE)
亦或者参照源码,自己获取 drawable
3 用图片生成 ImageSpan
3.1 使用系统自带文件选择器取得 Uri
3.2 使用绝对路径获取文件
3.2.1 在 AndroidManifest.xml 中声明权限
3.2.2 在 gradle 中添加依赖
androidx.activity,1.2.0 或更高版本
androidx.fragment,1.3.0 或更高版本
3.2.3 检查/请求权限
多权限同时请求:
3.2.4 获取图片数据
4 退格键删除图像
参考:edittext-with-spannablestringbuilder-and-imagespan-doesnt-works-fine
5 SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
5.1 Virtual Device
Pixel 4 XL
Android 10
键盘:Gboard
5.2 解决方式
Language & input —> virtual keyboard —> Gboard —> Text correction —> 关闭「Show suggest strip」