Last active
March 27, 2018 01:24
-
-
Save Johnnyne/433b9458593c62df4e6d83f9377be66b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class GlideImageLoader { | |
private ImageView mImageView; | |
private ProgressBar mProgressBar; | |
public GlideImageLoader(ImageView imageView, ProgressBar progressBar) { | |
mImageView = imageView; | |
mProgressBar = progressBar; | |
} | |
public void load(final String url, RequestOptions options) { | |
if (url == null || options == null) return; | |
onConnecting(); | |
//set Listener & start | |
ProgressAppGlideModule.expect(url, new ProgressAppGlideModule.UIonProgressListener() { | |
@Override | |
public void onProgress(long bytesRead, long expectedLength) { | |
if (mProgressBar != null) { | |
mProgressBar.setProgress((int) (100 * bytesRead / expectedLength)); | |
} | |
} | |
@Override | |
public float getGranualityPercentage() { | |
return 1.0f; | |
} | |
}); | |
//Get Image | |
Glide.with(mImageView.getContext()) | |
.load(url) | |
.transition(withCrossFade()) | |
.apply(options.skipMemoryCache(true)) | |
.listener(new RequestListener<Drawable>() { | |
@Override | |
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) { | |
ProgressAppGlideModule.forget(url); | |
onFinished(); | |
return false; | |
} | |
@Override | |
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) { | |
ProgressAppGlideModule.forget(url); | |
onFinished(); | |
return false; | |
} | |
}) | |
.into(mImageView); | |
} | |
private void onConnecting() { | |
if (mProgressBar != null) mProgressBar.setVisibility(View.VISIBLE); | |
} | |
private void onFinished() { | |
if (mProgressBar != null && mImageView != null) { | |
mProgressBar.setVisibility(View.GONE); | |
mImageView.setVisibility(View.VISIBLE); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment