问题一:
我在webview中load一张存于服务器端的html页面,如果我插入一张图片,想利用apk包内图片,我按以前的思路,使用file的URL地址符: file:///android_asset/images/xxxxx.jpg ,但是结果是在手机上此图无法显示。请问形如图片的插入该如何解决?
问题二:
新建一个webview对象,并且载入网页……是否有方法判断当前载入页面的url?我想利用keyCode == KeyEvent.KEYCODE_BACK 和 如果是默认页的话,按返回键推出程序,谢谢!

解决方案 »

  1.   

    如果是本地的html网页的话,只能解析文本内容,要想显示图片还需要用到其他的方法吧
      

  2.   

    1、URL的地址错了,webview不能直接获取你apk资源中的文件,你可能需要将资源图片释放到一个临时目录,然后URL去加载释放后的文件。
    File file = new File("/sdcard/1.jpg");  // 将文件保存到SD卡下的1.jpg
       InputStream is = context.getResources().openRawResource(
    R.raw.image1);
    FileOutputStream fs = new FileOutputStream(file);
    while (is.available() > 0) {
    byte[] b = new byte[is.available()];
    is.read(b);
    fs.write(b);
    }
    fs.close();
    然后Url地址符设置为:file:////sdcard/1.jpg2、webview有一个setWebViewClient的方法,可以设置WebViewClient。WebViewClient有3个重载的方法,其中有一个onPageFinished,此方法会在每次webView完全加载一个网页后调用,会传递过来一个参数url,就是所加载网页的地址。webView.setWebViewClient(new WebViewClient() { @Override
    public boolean shouldOverrideUrlLoading(WebView view,
    String url) { return super.shouldOverrideUrlLoading(view,url);
    } @Override
    public void onReceivedSslError(WebView view,
    SslErrorHandler handler, SslError error) { handler.proceed();
    } @Override
    public void onPageStarted(WebView view, String url,
    Bitmap favicon) {// 这个url是页面加载的网页的url,也可以用这个
    super.onPageStarted(view, url, favicon);
    } @Override
    public void onPageFinished(WebView view, String url) {

    // 这个url就是你所需要的
    super.onPageFinished(view, url);
    } @Override
    public void onReceivedError(WebView view, int errorCode,
    String description, String failingUrl) {

    super.onReceivedError(view, errorCode, description,
    failingUrl);
    } });
      

  3.   

    "file:///android_asset/pic.png";你的路径错了吧  这个路径下的图片,可以这样访问的哦