您的位置:首页 > 移动开发 > Android开发

android中base64字符串转为图片时遇到的坑

2016-03-10 14:20 465 查看
如果要在textView中显示图文混排的话,需要使用Html.fromHtml(String,ImageGetter,TagHandler)这个方法,但是尝试很久还是出现了问题,要么就是base64字符串直接显示在手机上,要么就是bad base64错误。

后来几经周折,发现下面这种方式就解决了,主要在于base64编码要写两遍,外面的是完整的,里面的是base64部分。由于base64太长,这里用ABC代替一下。

String resource = "<img src='ABC'>";
Html.ImageGetter getter = new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
byte[] byteIcon ;
source="ABC";
byteIcon = Base64.decode(source, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(byteIcon, 0, byteIcon.length);
Drawable drawable = new BitmapDrawable(getResources(),bitmap);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
return drawable;
}
};

CharSequence charSequence = Html.fromHtml(resource, getter,null);
view.setText(charSequence);
view.setMovementMethod(LinkMovementMethod.getInstance());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 编码 base64