android - 将图像从本地 Android 存储加载到 WebView

标签 android android-studio android-webview

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

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

我已经完成了所有相机的工作,所以我可以打开相机(通过我的 WebView)并拍照,图片保存在我知道的路径中,并且我知道图片的名称。另外,我目前可以从手机中选择图片,但问题是它只是选择而没有执行任何操作,因此选择没有用。

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

最佳答案

所以我找到了我想做的事情的解决方案,如果有一天有人想知道这篇文章并想知道解决方案,我会在这里发布答案。

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

    @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。

关于android - 将图像从本地 Android 存储加载到 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58309944/

相关文章:

Android Studio 4.1 模拟器崩溃

Android Studio 无法识别 wav 文件

android - Jetpack Compose WebView 处理返回导航并转到上一页

java - 在子类中分配全局变量并在 onCreate 方法中使用它 - Android

android - 如何在 recyclerview 中查找每个可见项目的百分比

android - AVD在Android Studio 2.3.1中自动关闭

bash - 如何在不打开 shell 的情况下运行 studio.sh(使用 Ubuntu)

android - WebView 未自动加载

Android 应用程序 key 哈希与任何存储的 key 哈希不匹配

android - 如何在 android 中获得最大 X 和最大 Y 点?