【问题标题】:show google drive image with glide in android imageview在 android imageview 中使用滑行显示谷歌驱动器图像
【发布时间】:2017-02-25 07:37:57
【问题描述】:

我的驱动器网址是 - https://drive.google.com/file/d/0B3DFHb2-MdGYa2NMUkVtVkZ1V1k/view?usp=sharing

我想使用 glide 在 android imageview 中显示它。我尝试了很多方法来展示它。 以下是我要显示的代码 -

Glide.with(getActivity()).load(readExcelFeed.getImage().toString()).into(ivQueImage);

请告诉我其中有什么问题。

【问题讨论】:

  • 将 Uri 放入 load 方法而不是 String。
  • @AslamHossin 仍然报错,因为 SkImageDecoder::Factory 返回 null
  • 检查 null pinter 异常,例如 if (readExcelFeed.getImage()!=null){ Glide.with(getActivity()).load(readExcelFeed.getImage().toString()).into(ivQueImage ); }
  • @AslamHossin 已添加但无法正常工作
  • 发布 logcat 错误...

标签: android imageview android-glide


【解决方案1】:

通过 Glide 库将图像从 Google 驱动器加载到 ImageView 的步骤

第 1 步:在您的云端硬盘中,您希望在 ImageView 上显示哪个图像。您需要从谷歌驱动器的三个点中获取可共享的链接。像这样“https://drive.google.com/open?id=139jBj_GUfmFi_pZN38SS9RMB5wNXMEy9

第 2 步:然后是显示图像的基本 url。链接是 公共静态字符串 BASE_URL = "https://drive.google.com/uc?id=";

第 3 步:在第 1 步中,您会看到图像的 id,然后将此 id 添加到基本 URL 中。喜欢这种类型 "https://drive.google.com/uc?id=139jBj_GUfmFi_pZN38SS9RMB5wNXMEy9"

第 4 步:使用 Glide 库在 ImageView 上显示图像,如下所示:

Glide.with(mContext)                      
.load("https://drive.google.com/uc?id=139jBj_GUfmFi_pZN38SS9RMB5wNXMEy9")              
.into(holder.user_image);

现在您可以在 ImageView 上看到您的图像了。

【讨论】:

  • 我试过https://drive.google.com/uc?id=,但没有用,但当我使用https://docs.google.com/uc?id=时,它对我有用。正如这里提到的stackoverflow.com/a/49553199/2462531
【解决方案2】:

除非我遗漏了什么,否则您只想使用 Glide 显示那张图片。只需右键单击它,选择“复制图像地址”,然后将其用作 Glide 的 url 字符串。

String url = "https://lh3.googleusercontent.com/s6-0yxPhDS4Os7SYbP66RCNp-mDwuKr72mLJx9ekuTWYFPgXahCvj-oVatwXELyVfyZzD80YTaiYde4=w1278-h954-rw";

Glide.with(getActivity()).load(url).into(ivQueImage);

【讨论】:

  • 不工作。仍然有与 D/skia 相同的错误:--- SkImageDecoder::Factory 返回 null
  • 您是否要在AsyncTask 中运行它?请提供您的整个班级。
【解决方案3】:

请求图片源必须使用executeMediaAndDownloadTo()

service.files().get(fileId).executeMediaAndDownloadTo(outputStream);

那么就可以从输出流中得到byte[]

byte[] data = outputStream.toByteArray();

并将其插入到 Glid

RequestOptions options = new RequestOptions();
options.skipMemoryCache(true);
options.diskCacheStrategy(DiskCacheStrategy.NONE);

Glide
    .with(this)
    .load(data)
    .apply(options)
    .transition(DrawableTransitionOptions.withCrossFade())
    .into(imageView);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    相关资源
    最近更新 更多