Итак, я загружаю фотографии из imgur, используя Glide с кодом ниже.
try {
ViewTarget viewTarget = new ViewTarget<SubsamplingScaleImageView, BitmapDrawable>(image_view) {
@Override
public void onResourceReady(BitmapDrawable bitmap, Transition<? super BitmapDrawable> transition) {
this.view.setImage(ImageSource.bitmap(bitmap.getBitmap()));
}
};
GlideApp.with(this).load(post_to_show.getUrl()).into(viewTarget);
} catch (ClassCastException e){}
, где SubsamplingScaleImageView - это, ну, в общем, расширение представления Custom ImageView.
Но это не имеет значения.
Работает нормально, пока не попробую загрузить что-то вроде this
Имеет расширение .jpg, но это GIF.
Я получаю эту ошибку:
E / AndroidRuntime: FATAL EXCEPTION: main
Процесс: me.ekhaled667.ridit, PID: 6202
java.lang.ClassCastException: com.bumptech.glide.load.resource.gif.GifDrawable не может быть приведен к android.graphics.drawable.BitmapDrawable
на me.ekhaled667.ridit.PostFragment $ 1.onResourceReady (PostFragment.java:257)
на com.bumptech.glide.request.SingleRequest.onResourceReady (SingleRequest.java:579)
на com.bumptech.glide.request.SingleRequest.onResourceReady (SingleRequest.java:549)
на com.bumptech.glide.load.engine.EngineJob.handleResultOnMainThread (EngineJob.java:218)
на com.bumptech.glide.load.engine.EngineJob $ MainThreadCallback.handleMessage (EngineJob.java:324)
на android.os.Handler.dispatchMessage (Handler.java:98)
на android.os.Looper.loop (Looper.java:163)
на android.app.ActivityThread.main (ActivityThread.java:6348)
в java.lang.reflect.Method.invoke (родной метод)
на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:880)
на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:770)
Во-первых: почему он не был пойман как исключение?
Во-вторых: как я могу обойти это, или другими словами, знать, что это gif, а не jpg, и загрузить его правильно?