Glide不会从File加载图像

时间:2018-06-05 09:46:26

标签: android android-glide

我正在使用文件选择器将图像作为文件,然后我想用Glide将其加载到ImageView中。

我正在尝试使用此代码,但无法将图片加载到图片视图中。

Glide.with(getApplicationContext())
      .load(Uri.fromFile(imageFile))
      .error(R.drawable.ic_person_gray)
      .listener(new RequestListener<Uri, GlideDrawable>() {
        @Override public boolean onException(
            Exception e, Uri model, Target<GlideDrawable> target, boolean isFirstResource
        ) {
          Timber.d(e.getMessage());
          return false;
        }

        @Override public boolean onResourceReady(
            GlideDrawable resource,
            Uri model,
            Target<GlideDrawable> target,
            boolean isFromMemoryCache,
            boolean isFirstResource
        ) {
          editProfilePresenter.uploadProfilePicture(imageFile);
          return false;
        }
      })
      .into(ivAvatar);

当我进行调试时,它永远不会到达 onException onResourceReady 中的调试点。

我如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

你不需要那里的Uri,你可以只获取文件的路径,你的听众将会是这样的 我的前任:

Glide.with(context).load(yourFile.getAbsolutePath()).centerCrop().listener(new RequestListener<String, GlideDrawable>() {
                    @Override
                    public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                        spinKitView.setVisibility(View.GONE);
                        return false;
                    }

                    @Override
                    public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                        spinKitView.setVisibility(View.GONE);
                        return false;
                    }
                }).into(ivAvatar);

SpinkitView只是一个显示加载动画的视图(如果需要时间来加载图片)

答案 1 :(得分:0)

使用Uri.parse(imageFile.getAbsolutePath())