From 2ed639b3c7ad5bd94db93575b10c81b4784368be Mon Sep 17 00:00:00 2001 From: Alex Vasilkov Date: Sun, 18 Oct 2015 21:55:36 +0600 Subject: [PATCH] Fixed glide animation issue (view may not be properly attached to Window) --- .../gestures/sample/adapters/PaintingsImagesAdapter.java | 6 ++---- .../sample/adapters/PaintingsLayoutsAdapter.java | 9 +++------ .../gestures/sample/utils/glide/GlideHelper.java | 5 +++++ 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsImagesAdapter.java b/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsImagesAdapter.java index b4e42aac..74fa0993 100644 --- a/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsImagesAdapter.java +++ b/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsImagesAdapter.java @@ -5,10 +5,10 @@ import android.view.ViewGroup; import com.alexvasilkov.gestures.sample.logic.Painting; +import com.alexvasilkov.gestures.sample.utils.glide.GlideHelper; import com.alexvasilkov.gestures.views.GestureImageView; import com.alexvasilkov.gestures.views.interfaces.GestureView; import com.alexvasilkov.gestures.views.utils.RecyclePagerAdapter; -import com.bumptech.glide.Glide; public class PaintingsImagesAdapter extends RecyclePagerAdapter { @@ -39,9 +39,7 @@ public ViewHolder onCreateViewHolder(@NonNull ViewGroup container) { public void onBindViewHolder(@NonNull ViewHolder holder, int position) { if (mSetupListener != null) mSetupListener.onSetupGestureView(holder.image); holder.image.getController().resetState(); - - Glide.with(holder.image.getContext()) - .load(mPaintings[position].getImageId()).into(holder.image); + GlideHelper.loadResource(mPaintings[position].getImageId(), holder.image); } diff --git a/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsLayoutsAdapter.java b/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsLayoutsAdapter.java index 54734801..1bed2fe3 100644 --- a/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsLayoutsAdapter.java +++ b/sample/src/main/java/com/alexvasilkov/gestures/sample/adapters/PaintingsLayoutsAdapter.java @@ -1,6 +1,5 @@ package com.alexvasilkov.gestures.sample.adapters; -import android.content.Context; import android.graphics.Typeface; import android.support.annotation.NonNull; import android.support.v4.view.ViewPager; @@ -14,10 +13,10 @@ import com.alexvasilkov.android.commons.utils.Views; import com.alexvasilkov.gestures.sample.R; import com.alexvasilkov.gestures.sample.logic.Painting; +import com.alexvasilkov.gestures.sample.utils.glide.GlideHelper; import com.alexvasilkov.gestures.views.GestureFrameLayout; import com.alexvasilkov.gestures.views.interfaces.GestureView; import com.alexvasilkov.gestures.views.utils.RecyclePagerAdapter; -import com.bumptech.glide.Glide; public class PaintingsLayoutsAdapter extends RecyclePagerAdapter implements View.OnClickListener { @@ -51,11 +50,9 @@ public void onBindViewHolder(@NonNull ViewHolder holder, int position) { if (mSetupListener != null) mSetupListener.onSetupGestureView(holder.layout); holder.layout.getController().resetState(); - Context context = holder.itemView.getContext(); + GlideHelper.loadResource(mPaintings[position].getImageId(), holder.image); - Glide.with(context).load(mPaintings[position].getImageId()).into(holder.image); - - CharSequence titleText = new SpannableBuilder(context) + CharSequence titleText = new SpannableBuilder(holder.itemView.getContext()) .createStyle().setFont(Typeface.DEFAULT_BOLD).apply() .append(R.string.paintings_author).append("\n") .clearStyle() diff --git a/sample/src/main/java/com/alexvasilkov/gestures/sample/utils/glide/GlideHelper.java b/sample/src/main/java/com/alexvasilkov/gestures/sample/utils/glide/GlideHelper.java index 54dd9941..dc22d184 100644 --- a/sample/src/main/java/com/alexvasilkov/gestures/sample/utils/glide/GlideHelper.java +++ b/sample/src/main/java/com/alexvasilkov/gestures/sample/utils/glide/GlideHelper.java @@ -1,5 +1,6 @@ package com.alexvasilkov.gestures.sample.utils.glide; +import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.View; @@ -22,6 +23,10 @@ public void animate(View view) { }; + public static void loadResource(@DrawableRes int drawableId, @NonNull ImageView image) { + Glide.with(image.getContext()).load(drawableId).animate(ANIMATOR).into(image); + } + public static void loadFlickrThumb(@Nullable Photo photo, @NonNull final ImageView image) { Glide.with(image.getContext()) .load(photo == null ? null : photo.getMediumUrl())