2012-05-14 71 views
3

我的數據以html格式存儲在數據庫中。base64圖像和html.fromhtml android

圖像以base64格式存儲(作爲db中的字符串)。

我想顯示這些數據。被正確地顯示在 '內容'

setText(Html.fromHtml(content));

所有的HTML標籤:

我的TextView被設置好的這個樣子。除了'img'標籤(其中包含一個base64編碼圖像)。

所以,我的問題是: 'Html.fromHtml'的標記'img'可以解碼一個帶有base64圖像的字符串嗎?

p.s:標籤顯示的地方只是一個小小的灰色方塊。沒有錯誤。

thx。

回答

1

使用Html.fromHtml結合您自己的執行Html.ImageGetter

請參閱here

當重寫Html.ImageGetter.getDrawable,轉換的Base64字符串轉換成一個字節數組(可以使用android.util.Base64)和飼料成BitmapFactory.decodeByteArray以產生Bitmap然後可以進入一個BitmapDrawable的構造返回。

例如:

Html.fromHtml(content, new Html.ImageGetter() { 
     @Override 
     public Drawable getDrawable(String source) { 
      byte[] data = Base64.decode(source, Base64.DEFAULT); 
      Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);     
      return new BitmapDrawable(getResources(), bitmap); 
     } 
}, null); 
+0

我得到這個錯誤: 'Base64編碼無法得到解決。'我正在使用Android 1.6。和'getResources'說:方法getResources()是未定義的類型新的Html.ImageGetter(){} – Munir

+0

Android 1.6不包含android.util.Base64。現在我使用這個http://androidcodemonkey.blogspot.com/2010/03/how-to-base64-encode-decode-android.html。但getResources仍然返回錯誤。 – Munir

+0

你需要從'Context'得到這個。 –