2014-02-15 45 views
0

我很好奇如果可以將內存中已有的圖像添加到Android中的WebView中。Android WebView加載可繪製變量

目前我正在傳遞一個Drawable對象,並希望直接將其添加到WebView而不將它保存到磁盤。

這可能嗎?

例子:

WebView myWebView = (WebView) findViewById(R.main.Content); 
InputStream is = (InputStream) new URL(imageURL).getContent(); 
Drawable image = Drawable.createFromStream(is, "src"); 
myWebView.add(image); //Fictitious code 

我已經使用的WebView「的setBackground」的方法試過了,但是我不希望我的分API限制傑利貝恩,以及我只是提出了一個空白屏幕。

感謝

回答

1

WebView是自己的渲染,並沒有一個鉤子放在解壓縮的位圖中。

如果您只是想避免寫入磁盤,那麼您可以使用WebViewClient.shouldInterceptRequest將圖像的InputStream返回到WebView(沿着此行的某些內容:https://stackoverflow.com/a/13142705/2977376)。

如果你想直接使用Drawable,那麼我能想到的唯一的事情就是在你的HTML中有一個「洞」(本質上是一個空洞大小的圖像大小),然後在頂部繪製該圖像您自己的WebView。這可能很具有挑戰性,因爲您需要在自己的代碼中處理縮放,翻譯和裁剪,所以我不會推薦它。

1

簡單回答你的問題,這是不可能的從應用程序的資源或WebView直接正嘗試直接下載任何圖像添加圖像。

爲此,您需要在您的網站中添加並加載WebView或者如果您有圖片鏈接,請在WebView加載該鏈接。

+0

我的圖像不在應用程序資源中。這是已經在內存中的drawable。 – WeldFire

+0

我已更新答案 –

+0

可以使用'file:/// android_asset /'URL將來自應用程序資源的圖像添加到WebView。請參閱:http://stackoverflow.com/questions/19857225/android-webview-loadurlfile-android-asset-index-htmlhome-failed –