2012-05-14 4 views
3

내 데이터는 데이터베이스에 html 형식으로 저장됩니다.base64 image 및 html.fromhtml android

이미지는 base64 형식 (db 형식의 문자열)으로 저장됩니다.

이 데이터를 표시하려고합니다.

내 텍스트 뷰는 다음과 같이 잘 살고있다 :

setText(Html.fromHtml(content));

모든 HTML 태그를 올바르게 표시되는 '콘텐츠'에. 'img'태그 (base64 인코딩 이미지 포함) 제외.

내 질문은 : 'Html.fromHtml'의 'img'태그는 base64 이미지로 문자열을 디코딩 할 수 있습니까?

p.s : 태그가있는 곳은 약간 회색 사각형입니다. 오류가 없습니다.

xx.

답변

1

고객님의 Html.ImageGetter 구현과 결합 된 Html.fromHtml을 사용하십시오.

here을 참조하십시오. Html.ImageGetter.getDrawable를 오버라이드 (override) 할 때

는, 바이트 배열로 Base64로 문자열을 변환하면 다음 반환하는 BitmapDrawable의 생성자에 전달할 수있는 Bitmap 생산 BitmapFactory.decodeByteArray로를 (당신은 android.util.Base64을 사용할 수 있습니다) 및 공급.

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() 메소드는 new 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'에서 이것을 얻을 필요가 있습니다. –