2014-02-23 297 views
0

我試圖在WebView中顯示以base64編碼的圖像。 它適用於我的大多數用戶,但有一些只能看到奇怪的字符,如下圖所示。無法顯示Base64編碼圖像

這是我如何顯示圖像:

String b64Image = Base64.encodeToString(fileData, Base64.DEFAULT); 
mWebView.loadData(b64Image, "image/jpeg", "base64"); 

在2.3.6和更低的Android版本出現問題。

+2

這適用於任何地方爲什麼以這種方式加載它,而不是在ImageView中顯示圖像? – CommonsWare

+0

我想加載的圖像非常大,並導致內存不足錯誤如果它沒有加載到WebView中。同樣在WebView中,您可以平滑縮放和滾動圖像。 – Marius

回答

1

對於Android 2.2及更低版本,您可以用HTML封裝圖像並加載HTML代替。 例如:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { 
    // Your original code here 
    } else { 
     byte[] imageRaw = yourImage; 
     String image64 = Base64.encodeToString(imageRaw, Base64.DEFAULT); 
     String pageData = "<img src=\"data:image/jpeg;base64," + image64 + "\" />"; 
     //.... etc. 
    } 

有打開這個錯誤這是2010年關閉:我很驚訝,https://code.google.com/p/android/issues/detail?id=596