在Android ImageView中使用Glide展示Google Drive图片

3

将 Uri 放入 load 方法中,而不是 String。 - aslamhossin
@AslamHossin 仍然出现错误,因为 SkImageDecoder::Factory 返回了 null。 - Abhijeet Kulkarni
@AslamHossin已经添加了,但是没有起作用。 - Abhijeet Kulkarni
@rafsanahmad007,以下是我的logcat错误 D / skia:--- SkImageDecoder :: Factory返回null D / skia:--- SkImageDecoder :: Factory返回null D / skia:--- SkImageDecoder :: Factory返回null D / skia:--- SkImageDecoder :: Factory返回null - Abhijeet Kulkarni
@AbhijeetKulkarni,你解决了吗?我在同样的事情上没有成功过... - user3833732
显示剩余3条评论
3个回答

12

使用Glide库从Google Drive加载图片到ImageView的步骤

步骤1:在您的Drive中,您需要从三个点中获取可共享链接以显示在ImageView上的图像。类似于这个链接 "https://drive.google.com/open?id=139jBj_GUfmFi_pZN38SS9RMB5wNXMEy9"

步骤2:然后是用于显示图像的基本URL。链接如下 public static String 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= 时,它对我有用。如此在这里提到 https://stackoverflow.com/a/49553199/2462531 - Shailendra Madda

0

如果要请求图像源,您必须使用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);

0

除非我漏掉了什么,你想使用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 - Abhijeet Kulkarni
你是不是在尝试在AsyncTask中运行这个代码?请提供你整个的类。 - Drew Szurko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接