当前位置: 首页 > 知识库问答 >
问题:

滑动不从文件路径加载图像

吴唯
2023-03-14

我在使用Glide加载图像时有问题。当我试图使用Android默认的SetimageBitmap(位图)加载图像时,我试图在从gallery中选择图像后加载图像;它起作用了,但我遇到了内存泄漏问题。

然后我尝试了Glide图像加载器来避免内存泄漏问题。但是我不能使用文件路径加载图像。

   Glide.with(_A)
                        .load(new File(uri.getPath()))
                        .asBitmap()
                        .override(w, w)
                        .centerCrop()
                        .placeholder(R.drawable.diploma)
                        .diskCacheStrategy(DiskCacheStrategy.SOURCE).into(imageView);

我也尝试加载Uri,但也不起作用。

然后我试着从URL Glide加载图像加载URL图像。效果很好。

  Glide
                        .with(_A)
                        .load("https://yt3.ggpht.com/-v0soe-ievYE/AAAAAAAAAAI/AAAAAAAAAAA/OixOH_h84Po/s900-c-k-no-mo-rj-c0xffffff/photo.jpg")
                        .asBitmap()
                        .override(w, w)
                        .centerCrop()
                        .placeholder(R.drawable.diploma)
                        .diskCacheStrategy(DiskCacheStrategy.SOURCE).into(imageView);

有人能帮我找到解决这个问题的方法吗?

共有1个答案

端木高卓
2023-03-14

正如所讨论的,下面是在特定路径上保存图像的代码,以及如何检索它。另外,我正在使用Realm来保存图像的路径,你可以使用其他任何东西。下面是保存图像的代码:

private void saveToInternalStorage(Bitmap bitmapImage, final String fileName) {
    ContextWrapper cw = new ContextWrapper(getContext());
    directory = cw.getDir("myloImages", Context.MODE_PRIVATE);
    if (!directory.exists()) {
        directory.mkdir();
    }
    mypath = new File(directory, fileName + ".png");

    FileOutputStream fos = null;
    try {
        fos = new FileOutputStream(mypath);
        bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
        fos.close();
        Log.v("IMAGE PATH", mypath.getAbsolutePath());
    } catch (Exception e) {
        Log.e("SAVE_IMAGE", e.getMessage(), e);
    }

    realm.executeTransactionAsync(new Realm.Transaction() {
        @Override
        public void execute(Realm realm) {
            PhotosRealm photosRealm = new PhotosRealm();
            photosRealm.setImageLocation(directory.getAbsolutePath() + "/" + fileName + ".png");
            realm.copyToRealm(photosRealm);
            // I'm using realm to save location.
        }
    });
    finish();
}

现在从那个位置检索图像。它与您的代码相同:

private RealmResults<PhotosRealm> list;

Glide.with(context).load(list.get(0).getImageLocation()).asBitmap().into(imageView);
 类似资料:
  • 问题内容: 我的Java应用程序有问题,特别是从计算机中的某个位置加载图像时。 在这篇文章之后,我使用和来在计算机上加载图像。首先,我将图片()放入源代码中,并且可以正常工作。但是,如果我将图像放到另一个地方(比如说),Java IDE会向我显示一个 这是代码: 问题答案: &不适用于文件路径,但适用于相对于代码库的路径。如果代码库为,则可以找到资源的相对路径为。 通过加载文件之间..differ

  • 我试图从画廊获取图像并存储到数据库的路径以供进一步使用。文件路径保存在数据库中,但我无法在ImageView上获得视图。 文件路径为: /storage/emulated/0/DCIM/Camera/image.jpg 这里我得到的图像路径是imgS 在这里,我试图检索路径并在图像视图中显示图像。 注意:文件存在于路径中。

  • 图像加载: 链接1:https://freshtocook.in/uploads/banner/47a16ffc2fc5935dccd37574083c6201.jpg 链接2:https://freshtocook.in/uploads/banner/7eecf823e008a0bb93f347d994b6e534.jpg

  • 问题内容: 有一个maven项目A。执行mvn全新安装后,将构建项目,并且该jar在我的本地存储库中可用,即 A.jar包含几个类和这些类使用的xml文件 从另一个Maven项目中,我正在调用使用一个XML文件的类中的一种方法。 代码是: 第二个项目位于我的D盘中。在获得绝对路径时,我得到的是\ com \ stackoverflow \ A \ res \ p.xml,这是正确的绝对路径。 但是

  • 我是数据砖或火花的新手,并从数据砖中学习这个演示。我在 AWS 上设置了数据砖工作区。下面的代码来自官方演示,运行正常。但是这个csv文件在哪里?我想检查文件并了解路径参数的工作原理。

  • 我将图像路径(来自图库的图像)存储在SQLite数据库中,现在加载到图像视图中。。。并使用此代码: 和错误: E/BitmapFactory:无法解码流:java.io.FileNotFoundException:/storage/emulated/0/DCIM/Camera/IMG_20161230_224205.jpg(权限被拒绝)