从Firebase存储链接显示.gif文件

时间:2018-02-18 17:22:33

标签: android gif android-glide

我在.gif文件

上的Firebase存储中有链接
String gifUrl = "https://firebasestorage.googleapis.com/v0/b/rokitskiydev-a18ca.appspot.com/o/WF%2F10-16-02-Digital-15.gif?alt=media&token=0354f6e6-4292-4911-9302-49281d293a80";

我尝试使用Picasso和Glide。但是我只能显示这个gif的图像。

GlideApp.with(context).load(gifUrl).into(ImageView);

如果我得到另一个链接,示例http://i.imgur.com/1ALnB2s.gif就可以了!

我该怎么做?

2 个答案:

答案 0 :(得分:0)

正如Glide Documentation所说,

您可以使用.asGif()强制库加载动画gif,如果不是,则会失败:

Glide.with(activity).load(gifUrl).asGif().into(view);

试试这个

检查文档:https://futurestud.io/tutorials/glide-displaying-gifs-and-videos

同样,FirebaseDoc说你可以这样做来加载带滑动的图像/ gif

首先在build.gradle中声明这个

dependencies {
    // FirebaseUI Storage only
    compile 'com.firebaseui:firebase-ui-storage:0.6.0'
}

然后

这是用firebase加载你的图像

// Reference to an image file in Firebase Storage
StorageReference storageReference = ...;

// ImageView in your Activity
ImageView imageView = ...;

// Load the image using Glide
Glide.with(this /* context */)
        .using(new FirebaseImageLoader())
        .load(storageReference)
        .into(imageView);

如果您需要图片/ gif文件的网址,则可以执行此操作

storageRef.child("your/firebase/imagepath.png").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
        @Override
        public void onSuccess(Uri uri) {
            // Got the download URL for 'users/me/profile.png'
            Uri downloadUri = taskSnapshot.getMetadata().getDownloadUrl();
            generatedFilePath = downloadUri.toString(); /// The string(file link) that you need
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception exception) {
            // Handle any errors
        }
    });

答案 1 :(得分:-1)

获取gif的 downloadUrl ,然后使用它来加载带Glide的gif。

ImageView imageView = (ImageView) findViewById(R.id.imageView);
GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView);
Glide.with(this).load(downloadUrl).into(imageViewTarget);

对于较新版本的Glide,请尝试以下方法:

Glide.with(context)
.load(imageUrl)
.asGif()
.placeholder(R.drawable.loading2)
.crossFade()
.into(imageView);