我正在使用Glide在启动屏幕中加载GIF图像。GIF加载完成后,我想使用Intent打开下一个活动。
我尝试了以下代码,
Glide.with(this).load(R.drawable.image1).override(width, height).into(imageViewTarget);
和Glide版本:com.github.bumptech.Glide:Glide:3.7.0'
但是找不到任何帮助,请帮助解决这个问题。
在我看来,您想要的是在GIF动画完成时启动另一个活动,而不是将GIF加载到您的ImageView中。在这种情况下,最好测量完成gif动画所需的时间,并将其设置为局部变量。为了确保gif动画完整,最好使时间比动画成本长一点。然后像这样做。
long gifAnimationTime = 1000;// A bit more than the gif animation,you can ajust this to your situation.
Glide.with(this)
.load(R.drawable.image1)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
// start your activity here.
}
}, gifAnimationTime);
return false;
}
})
.into(imageViewTarget);
我有新东西。试试这个:
Movie movie = Movie.decodeByteArray(gifdata,offset,length);
long period = movie.duration();
让listner来处理这个。。
Glide.with(this)
.load(R.drawable.image1)
.asGif()
.override(width, height)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
//AFTER LOAD OUT YOUR LOGIC
//open next activity
return false;
}
})
.into(imageViewTarget);
并确保您的imageview始终可见。希望这有帮助。。
我花了几个小时试图为Glide V4找到一个解决方案,这就是我最终遇到的,它工作得很完美。https://github.com/bumptech/glide/pull/3438
@Override
public boolean onResourceReady(GifDrawable resource, Object model, Target<GifDrawable> target, DataSource dataSource, boolean isFirstResource) {
resource.setLoopCount(1);
resource.registerAnimationCallback(new Animatable2Compat.AnimationCallback() {
@Override
public void onAnimationEnd(Drawable drawable) {
//in your case start new Activity
}
});
return false;
}
}).into(imageView);
我正在使用Glide在我的中加载GIF。 图像来自服务器,具有高分辨率和大量帧。 我注意到,一旦加载和播放GIF,内存使用率很高,可能导致内存不足。 我尝试了以下Glide方法(),但内存使用率没有改变。 Glide中还有其他可以使用的方法吗?
我正在尝试使用Glide库将gif加载到ImageView中。Gif图像位于Raw文件夹中。代码如下: 但它没有加载。我错过什么了吗?它没有给出失败的日志。
我尝试在图像视图中显示GIF图像作为加载占位符-使用Glide Library: 我试图显示此文件 加载2.gif 但是得到这个错误: 错误:(54,86)错误:找不到符号方法asGif() 如何在imageView中使用Glide显示GIF文件?
我有一个应用程序,当用户打开指向图像的链接时,不是打开浏览器,而是在服务中创建一个浮动的图像视图,并显示在所有其他应用程序之上(需要android.permission.SYSTEM\u ALERT\u窗口的权限)。这里是应用程序的链接:Tappic。 我想使用Glide添加动画GIF支持(我也尝试过其他库,但结果总是一样),但只显示GIF的前几帧,然后停止。 下面是我在服务中加载图像的代码: 您
我第一次使用Glide在ImageView中显示GIF。我已经按照几个站点的方式对其进行了编码。但它不起作用。我已经给出了以下所有代码:(如果我弄错了什么,请告诉我) 项目级build.gradle 应用程序级构建。gradle文件: activity_main.xml 活动Java代码: 单击“提交”按钮后,我没有看到GIF图像。
嗨,我想有一个图像的进度条,将显示图像加载时,但当图像加载将完成,我想把它设置为去。早些时候我用毕加索图书馆来做这个。但我不知道如何在Glide库中使用它。我知道有一些资源就绪的功能,但我不知道如何使用它。有人能帮我吗? 毕加索图书馆代码 现在我该如何使用Glide? 我能够加载图像,这与Glide,但我怎么能写在代码中的某个地方,如果图像被加载?