正在将图像从本地 android 存储加载到 WebView

Loading an image from local android storage to WebView

是否可以从本地androidphone存储加载图片到WebView?基本上我想做的是,拍一张照片,然后在 WebView 中显示该图片(如预览图片),然后在填写更多信息后,将该图片和整个数据上传到数据库。一切都在 android studio Java 代码中,WebView 显然是我从资产文件夹加载的 .html 文件。

我在想也许我需要创建一个 <img id="image"></img> 然后以某种方式获取 ID?但是,即使我设法获得了ID,如何将图片存储在其中?

我已经完成了所有的相机设置,所以我可以打开相机(通过我的 WebView)并拍照,图片保存在我知道的路径中,我知道图片的名称。另外我目前可以 select 来自 phone 的图片,但问题是它只有 selects 并且没有做任何事情,所以 selection 没用。

如果您需要任何代码,我会编辑。

所以我找到了我想做的事情的解决方案,如果有一天有人想知道这个 post 并想知道解决方案,我会 post 在这里回答。

基本上在拍照后我调用 javascript 函数将拍摄的图像放入我的 .html 文件中 <img></img> 标签之间作为源。 这是我在 MainActivity.java 中的 onActivityResult:

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == PICK_IMAGE && resultCode == Activity.RESULT_OK) {
            //Getting the full image path of the image taken
            final String imagePath = "file://"+ currentPhotoPath;
            webView.post(new Runnable() {
                @Override
                public void run() {
                    webView.evaluateJavascript("postImage('" + imagePath + "')", null);
                }
            });
            getLocation();
            if (data == null) {
                //Display an error
                Log.d("performClick", "Error: data == null");
                return;
            }
        }
    }

它的作用是调用 javascript 函数 postImage 并将 imagePath 作为参数传递,我的 hello.js 文件中的函数是:

function postImage(imagePath){
    document.body.innerHTML = "<img src=\""+ imagePath + "\">";
}

现在,一旦我拍完照片,它就会作为图像显示在我的 WebView 上,而无需重新加载页面或加载另一个 URL 只有图像的图像。