AndroidのGlideでGifを1枚だけロード。そしてcrossFade()

GlideでGIFのロードがとても時間がかかっていて、そもそもアニメーションする必要もないので、1枚だけロードすることにした。 そうしたら、crossFadeができないというジレンマ。 こうしたらいい asBitmap()して、listener()でアニメーションする
Glide.with(context)
	.load(gifpath).asBitmap()
	.fallback(R.mipmap.ic_launcher)
	.listener(new RequestListener() {
		@Override
		public boolean onException(Exception e, String model, Target target, boolean isFirstResource) {
			return false;
		}
		@Override
		public boolean onResourceReady(Bitmap resource, String model, Target target, boolean isFromMemoryCache, boolean isFirstResource) {
			ImageViewTarget imTarget = (ImageViewTarget) target;
			return new DrawableCrossFadeFactory<>()
				.build(isFromMemoryCache, isFirstResource)
				.animate(new BitmapDrawable(imTarget.getView().getResources(), resource), imTarget);
		}
	})
	.into(imageView);

コメント

タイトルとURLをコピーしました