С моей точки зрения, что вы хотите, чтобы начать другую деятельность, когда 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);
я получил что-то new.Try это:
Movie movie = Movie.decodeByteArray(gifdata,offset,length);
long period = movie.duration();
Добавить слушатель в скольжении затем вашу другую деятельность после того, как сделано. И убедитесь, что ваш вид изображения виден, в противном случае у скольжения возникает проблема с видимостью изображения http://stackoverflow.com/questions/32503327/glide-listener-doesnt-work. – james