2016-09-23 209 views
1

因此,我通過webview加載網站的一個頁面及其在我的android應用程序中的顯示。Java Android - 從webview獲取圖像

該網站上有幾個圖像;讓我們說的網站頁面包含3張圖片:

<img src="pic_mountain.jpg"> 
<img src="random_image.php"> 
<img src="pic_mountain_second.jpg"> 

我的問題是,如何獲取上述每個圖像的,所以我可以在我的Java Android應用程序訪問的每一個作爲位圖?

+0

給你有圖像完整的網絡路徑? –

+0

你只是想在webview上顯示圖像? –

+0

@SohailZahid是的,圖像完整的網絡路徑是:https://sapsnkra.moe.gov.my/randomimage.php – nerdcomp1

回答

0

這裏是工作的例子,獲取HTML作爲字符串,它是在webview中加載的,以及在將圖像url轉換爲位圖後如何從中獲取圖像URL。

集的WebView客戶端的網頁視圖像

webview.setWebViewClient(new WebClientClass()); 

web視圖客戶端下面

public class WebClientClass extends WebViewClient { 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view, url); 
      if (progressDialog != null && progressDialog.isShowing()) 
       progressDialog.dismiss(); 

      wvAboutUs.evaluateJavascript(
        "(function() { return ('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>'); })();", 
        new ValueCallback<String>() { 
         @Override 
         public void onReceiveValue(String html) { 
          JsonReader reader = new JsonReader(new StringReader(html)); 
          reader.setLenient(true); 
          try { 
           if (reader.peek() != JsonToken.NULL) { 
            if (reader.peek() == JsonToken.STRING) { 
             String msg = reader.nextString(); 
             if (msg != null) { 
              Log.d("HTML", msg); 
              Pattern p = Pattern.compile("src=\"(.*?)\""); 
              Matcher m = p.matcher(msg); 
              if (m.find()) { 
               Log.d("HTML", m.group(1)); // This will print your image url 
              } 
             } 
            } 
           } 
          } catch (IOException e) { 
           Log.e("TAG", "MainActivity: IOException", e); 
          } finally { 
           try { 
            reader.close(); 
           } catch (IOException e) { 
           } 
          } 
         } 
        }); 
     } 
    } 
+1

嗨,謝謝你的回覆。 我有2個問題: 1.什麼是「wvAboutUs」? 2.由於每次我調用它時總是會產生隨機圖像,所以當我使用上述方法調用時,結果可能與我的webview中的結果不同,是否正確?因爲我看到上面的方法會調用random_image.php上的另一個圖像。 謝謝! – nerdcomp1