gpt4 book ai didi

android - 在 Android 4.x 中插入一个 ImageSpan 后,EditText 中出现重复图像

转载 作者:太空狗 更新时间:2023-10-29 13:18:59 25 4
gpt4 key购买 nike

我有下面的代码 fragment ,用于将位图插入 EditText 小部件。在 Android 5.x 上,它工作正常,但在 Android 4.x 上,插入一张位图后会显示重复的图像。有谁知道如何用 Android 4.x 解决这个问题吗?

    insertPicIntoEditText(getBitmapSpannable(resized_bm, upload_uri));

private SpannableString getBitmapSpannable(Bitmap pic, String uri_string) {
SpannableString ss = new SpannableString(uri_string);
ImageSpan span = new ImageSpan(this, pic);
ss.setSpan(span, 0, uri_string.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return ss;
}

private void insertPicIntoEditText(SpannableString ss) {
Editable et = mContentEditor.getText();
int start = mContentEditor.getSelectionStart();
et.insert(start, ss);
et.insert(start + ss.length(), "\n");
mContentEditor.setText(et);
mContentEditor.setSelection(start + ss.length() + 1);
}

最佳答案

这是由于 setBounds 中设置的高度大于在 Activity 早期创建的可绘制对象的位图的高度。当这种情况发生时,似乎会发生两件事..

首先,如果大小只是略微超过了位图的大小(我在开始工作后还没有对其进行过广泛的测试,所以我不确定确切的数字)超过位图的大小,然后在跨度中添加一个大的空白空间,这空白区域与插入的位图大小相同。

其次,将 Drawable 的一个额外副本添加到 span,就在空白区域的正下方。

解决方案相对简单。确保在创建 Drawable 和调用 setBounds 之前将用于创建 Drawable 的位图设置为预期的最终大小。

这可能并非在所有情况下都有效,但对我有用,希望对某些人有所帮助。

关于android - 在 Android 4.x 中插入一个 ImageSpan 后,EditText 中出现重复图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31421141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com