11

私のプロジェクトにはファイルがあります:

"MyProject/assets/folder1/image1.jpg"
"MyProject/assets/folder1/index.html".

webView では、index.html (画像付き) を開く必要があります。

私はこのコードを試しています:

String baseUrl = "file:///android_asset/folder1/";
webView.loadDataWithBaseURL(baseUrl, readFileAsString("index.html") , mimeType, "UTF-8", null);

しかし、画像が読み込まれません。

画像を「assets」ディレクトリ ( MyProject/assets/) に配置し、baseUrl = "file:///android_asset"画像を正しくロードすると、

ルート アセット ディレクトリだけでなく、assets/folder1.

4

4 に答える 4

15

このようにしてみてください

WebView webview = (WebView)this.findViewById(R.id.webview);


String html = "<html><head><title>TITLE!!!</title></head>";
html += "<body><h1>Image?</h1><img src=\"icon.png\" /></body></html>";


webview.loadDataWithBaseURL("file:///android_res/drawable/", html, "text/html", "UTF-8", null); 

詳細については、このリンクを試してください

完璧なLoadDataWithBaseurl

于 2013-01-17T08:29:59.490 に答える
5

次のように、ベースをアセットに設定し、サブフォルダーをイメージ src に追加する必要があると思います。

webView.loadDataWithBaseURL("file:///android_asset/", readAssetFileAsString("folder1/index.html"), "text/html", "UTF-8", null);

HTML: <img src="folder1/image1.jpg">

これはAndroid 5.1でうまくいきました

private String readAssetFileAsString(String sourceHtmlLocation)
{
    InputStream is;
    try
    {
        is = getContext().getAssets().open(sourceHtmlLocation);
        int size = is.available();

        byte[] buffer = new byte[size];
        is.read(buffer);
        is.close();

        return new String(buffer, "UTF-8");
    }
    catch(IOException e)
    {
        e.printStackTrace();
    }

    return "";
}
于 2016-07-28T01:45:12.997 に答える
1

これを好きにしてみてください

try {
            String filePath = null;
            filePath = "Your File path";
            Bitmap bitmap = null;

            bitmap = BitmapFactory.decodeFile(filePath);
            Log.v("Image data-->", "" + bitmap);
            imageWidth = bitmap.getWidth();
            imageHeight = bitmap.getHeight();
            Log.e("Width", "" + imageWidth);
            filePath = "file://" + filePath;
            String html = "<html xmlns=\"http://www.w3.org/1999/xhtml\"><head><meta http-equiv=\"Content-Type\" content=\"text/html\";charset=utf-8\"/><title></title></head><body style=\"width:"
                    + imageWidth
                    + "px; height:"
                    + imageHeight
                    + "px; background:url("
                    + filePath
                    + ") no-repeat; position:relative;\">"
                    + getDivTag(mapList)
                    + "</body></html>";

            Log.v("MIS", "" + html);
            webview.getSettings().setSupportZoom(true);
            webview.loadDataWithBaseURL(null, html, "text/html", "utf-8", null);

            System.out.println(html);

        } catch (Exception e) {
            e.printStackTrace();
        }
于 2013-01-17T10:37:13.903 に答える
-15

インターネットの許可を与えていますか?

<uses-permission android:name="android.permission.INTERNET" />
于 2013-01-17T08:08:25.570 に答える