2016-09-23 146 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