gpt4 book ai didi

android - Html.imageGetter 不在 Base64 android 中显示图像

转载 作者:搜寻专家 更新时间:2023-11-01 09:07:49 24 4
gpt4 key购买 nike

我正在尝试使用 Html.fromHtml 在 Base64 中显示 img

我有一个带有一张图片的 Base64 字符串的标签。

这是我的代码:

public class GlossaryAdapter extends BaseAdapter{

...
private Resources res;

public GlossaryAdapter(Context context, ...) {
this.res = context.getResources();
...
}

public View getView(int position, View convertView, ViewGroup arg2) {
...
holder.tvContent.setText(Html.fromHtml(glossary.getContent(), new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
try {
byte[] data;
data = Base64.decode(source,Base64.DECODE);
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
return new BitmapDrawable(res, bitmap);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}, null));

glossary.getContent() 包含:

<img src="AAAY5671NF..." />

我在 html 页面中测试了这个字符串并且有效。显示图像。

我使用的是 Android 1.6。这个 Base64 类:http://androidcodemonkey.blogspot.com/2010/03/how-to-base64-encode-decode-android.html

我没有发现任何错误。但没有任何显示。如果我将 return 更改为“null”,我会得到一个灰色的小方 block 。

有什么想法吗?

最佳答案

很久以后...从数据库中获取 imageBytes(BLOB)。编码为 Base64 并传递给 src。解码并设置位图的边界。有效!

@Override
public Drawable getDrawable(String source) {
try {
byte[] data;
data = Base64.decode(source,Base64.DECODE);
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
Drawable d = new BitmapDrawable(res, bitmap);
d.setBounds(0,0,72,72) // <-----
return d;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}

关于android - Html.imageGetter 不在 Base64 android 中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10637118/

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