use of com.nostra13.universalimageloader.core.listener.ImageLoadingListener in project Slide by ccrama.
the class MediaFragmentComment method displayImage.
public void displayImage(final String url) {
if (!imageShown) {
actuallyLoaded = url;
final SubsamplingScaleImageView i = rootView.findViewById(R.id.submission_image);
i.setMinimumDpi(70);
i.setMinimumTileDpi(240);
final ProgressBar bar = rootView.findViewById(R.id.progress);
bar.setIndeterminate(false);
bar.setProgress(0);
final Handler handler = new Handler();
final Runnable progressBarDelayRunner = new Runnable() {
public void run() {
bar.setVisibility(View.VISIBLE);
}
};
handler.postDelayed(progressBarDelayRunner, 500);
ImageView fakeImage = new ImageView(getActivity());
fakeImage.setLayoutParams(new LinearLayout.LayoutParams(i.getWidth(), i.getHeight()));
fakeImage.setScaleType(ImageView.ScaleType.CENTER_CROP);
File f = ((Reddit) getActivity().getApplicationContext()).getImageLoader().getDiskCache().get(url);
if (f != null && f.exists()) {
imageShown = true;
try {
i.setImage(ImageSource.uri(f.getAbsolutePath()));
} catch (Exception e) {
// todo i.setImage(ImageSource.bitmap(loadedImage));
}
(rootView.findViewById(R.id.progress)).setVisibility(View.GONE);
handler.removeCallbacks(progressBarDelayRunner);
previous = i.scale;
final float base = i.scale;
i.setOnStateChangedListener(new SubsamplingScaleImageView.DefaultOnStateChangedListener() {
@Override
public void onScaleChanged(float newScale, int origin) {
if (newScale > previous && !hidden && newScale > base) {
hidden = true;
final View base = rootView.findViewById(R.id.base);
ValueAnimator va = ValueAnimator.ofFloat(1.0f, 0.2f);
// in millis
int mDuration = 250;
va.setDuration(mDuration);
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Float value = (Float) animation.getAnimatedValue();
base.setAlpha(value);
}
});
va.start();
// hide
} else if (newScale <= previous && hidden) {
hidden = false;
final View base = rootView.findViewById(R.id.base);
ValueAnimator va = ValueAnimator.ofFloat(0.2f, 1.0f);
// in millis
int mDuration = 250;
va.setDuration(mDuration);
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Float value = (Float) animation.getAnimatedValue();
base.setAlpha(value);
}
});
va.start();
// unhide
}
previous = newScale;
}
});
} else {
((Reddit) getActivity().getApplicationContext()).getImageLoader().displayImage(url, new ImageViewAware(fakeImage), new DisplayImageOptions.Builder().resetViewBeforeLoading(true).cacheOnDisk(true).imageScaleType(ImageScaleType.NONE).cacheInMemory(false).build(), new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
imageShown = true;
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
Log.v(LogUtil.getTag(), "LOADING FAILED");
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
imageShown = true;
File f = null;
if (getActivity() != null) {
f = ((Reddit) getActivity().getApplicationContext()).getImageLoader().getDiskCache().get(url);
}
if (f != null && f.exists()) {
i.setImage(ImageSource.uri(f.getAbsolutePath()));
} else {
i.setImage(ImageSource.bitmap(loadedImage));
}
(rootView.findViewById(R.id.progress)).setVisibility(View.GONE);
handler.removeCallbacks(progressBarDelayRunner);
previous = i.scale;
final float base = i.scale;
i.setOnStateChangedListener(new SubsamplingScaleImageView.DefaultOnStateChangedListener() {
@Override
public void onScaleChanged(float newScale, int origin) {
if (newScale > previous && !hidden && newScale > base) {
hidden = true;
final View base = rootView.findViewById(R.id.base);
ValueAnimator va = ValueAnimator.ofFloat(1.0f, 0.2f);
// in millis
int mDuration = 250;
va.setDuration(mDuration);
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Float value = (Float) animation.getAnimatedValue();
base.setAlpha(value);
}
});
va.start();
// hide
} else if (newScale <= previous && hidden) {
hidden = false;
final View base = rootView.findViewById(R.id.base);
ValueAnimator va = ValueAnimator.ofFloat(0.2f, 1.0f);
// in millis
int mDuration = 250;
va.setDuration(mDuration);
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Float value = (Float) animation.getAnimatedValue();
base.setAlpha(value);
}
});
va.start();
// unhide
}
previous = newScale;
}
});
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
Log.v(LogUtil.getTag(), "LOADING CANCELLED");
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current, int total) {
((ProgressBar) rootView.findViewById(R.id.progress)).setProgress(Math.round(100.0f * current / total));
}
});
}
}
}
use of com.nostra13.universalimageloader.core.listener.ImageLoadingListener in project Slide by ccrama.
the class PeekMediaView method displayImage.
public void displayImage(final String urlB) {
LogUtil.v("Displaying " + urlB);
final String url = StringEscapeUtils.unescapeHtml4(urlB);
if (!imageShown) {
actuallyLoaded = url;
final SubsamplingScaleImageView i = findViewById(R.id.submission_image);
i.setMinimumDpi(70);
i.setMinimumTileDpi(240);
progress.setIndeterminate(false);
progress.setProgress(0);
final Handler handler = new Handler();
final Runnable progressBarDelayRunner = new Runnable() {
public void run() {
progress.setVisibility(View.VISIBLE);
}
};
handler.postDelayed(progressBarDelayRunner, 500);
ImageView fakeImage = new ImageView(getContext());
fakeImage.setLayoutParams(new LinearLayout.LayoutParams(i.getWidth(), i.getHeight()));
fakeImage.setScaleType(ImageView.ScaleType.CENTER_CROP);
File f = ((Reddit) getContext().getApplicationContext()).getImageLoader().getDiskCache().get(url);
if (f != null && f.exists()) {
imageShown = true;
i.setOnImageEventListener(new SubsamplingScaleImageView.DefaultOnImageEventListener() {
@Override
public void onImageLoadError(Exception e) {
imageShown = false;
LogUtil.v("No image displayed");
}
});
try {
i.setImage(ImageSource.uri(f.getAbsolutePath()));
i.setZoomEnabled(false);
} catch (Exception e) {
imageShown = false;
// todo i.setImage(ImageSource.bitmap(loadedImage));
}
(progress).setVisibility(View.GONE);
handler.removeCallbacks(progressBarDelayRunner);
} else {
((Reddit) getContext().getApplicationContext()).getImageLoader().displayImage(url, new ImageViewAware(fakeImage), new DisplayImageOptions.Builder().resetViewBeforeLoading(true).cacheOnDisk(true).imageScaleType(ImageScaleType.NONE).cacheInMemory(false).build(), new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
imageShown = true;
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
Log.v(LogUtil.getTag(), "LOADING FAILED");
imageShown = false;
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
imageShown = true;
File f = ((Reddit) getContext().getApplicationContext()).getImageLoader().getDiskCache().get(url);
if (f != null && f.exists()) {
i.setImage(ImageSource.uri(f.getAbsolutePath()));
} else {
i.setImage(ImageSource.bitmap(loadedImage));
}
(progress).setVisibility(View.GONE);
handler.removeCallbacks(progressBarDelayRunner);
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
Log.v(LogUtil.getTag(), "LOADING CANCELLED");
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current, int total) {
progress.setProgress(Math.round(100.0f * current / total));
}
});
}
}
}
use of com.nostra13.universalimageloader.core.listener.ImageLoadingListener in project Slide by ccrama.
the class PopMediaView method displayImage.
public void displayImage(final String url, final View v) {
final SubsamplingScaleImageView i = (SubsamplingScaleImageView) v.findViewById(R.id.submission_image);
i.setMinimumDpi(70);
i.setMinimumTileDpi(240);
final ProgressBar bar = (ProgressBar) v.findViewById(R.id.progress);
bar.setIndeterminate(false);
bar.setProgress(0);
final Handler handler = new Handler();
final Runnable progressBarDelayRunner = new Runnable() {
public void run() {
bar.setVisibility(View.VISIBLE);
}
};
handler.postDelayed(progressBarDelayRunner, 500);
ImageView fakeImage = new ImageView(v.getContext());
fakeImage.setLayoutParams(new LinearLayout.LayoutParams(i.getWidth(), i.getHeight()));
fakeImage.setScaleType(ImageView.ScaleType.CENTER_CROP);
File f = ((Reddit) v.getContext().getApplicationContext()).getImageLoader().getDiscCache().get(url);
if (f != null && f.exists()) {
try {
i.setImage(ImageSource.uri(f.getAbsolutePath()));
} catch (Exception e) {
// todo i.setImage(ImageSource.bitmap(loadedImage));
}
(v.findViewById(R.id.progress)).setVisibility(View.GONE);
handler.removeCallbacks(progressBarDelayRunner);
} else {
((Reddit) v.getContext().getApplicationContext()).getImageLoader().displayImage(url, new ImageViewAware(fakeImage), new DisplayImageOptions.Builder().resetViewBeforeLoading(true).cacheOnDisk(true).imageScaleType(ImageScaleType.NONE).cacheInMemory(false).build(), new ImageLoadingListener() {
private View mView;
@Override
public void onLoadingStarted(String imageUri, View view) {
mView = view;
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
Log.v(LogUtil.getTag(), "LOADING FAILED");
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
File f = ((Reddit) v.getContext().getApplicationContext()).getImageLoader().getDiscCache().get(url);
if (f != null && f.exists()) {
i.setImage(ImageSource.uri(f.getAbsolutePath()));
} else {
i.setImage(ImageSource.bitmap(loadedImage));
}
(v.findViewById(R.id.progress)).setVisibility(View.GONE);
handler.removeCallbacks(progressBarDelayRunner);
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
Log.v(LogUtil.getTag(), "LOADING CANCELLED");
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current, int total) {
((ProgressBar) v.findViewById(R.id.progress)).setProgress(Math.round(100.0f * current / total));
}
});
}
}
use of com.nostra13.universalimageloader.core.listener.ImageLoadingListener in project Slide by ccrama.
the class CommentCacheAsync method loadPhotos.
public void loadPhotos(Submission submission, Context c) {
String url;
ContentType.Type type = ContentType.getContentType(submission);
if (submission.getThumbnails() != null) {
if (type == ContentType.Type.IMAGE || type == ContentType.Type.SELF || (submission.getThumbnailType() == Submission.ThumbnailType.URL)) {
if (type == ContentType.Type.IMAGE) {
if (((!NetworkUtil.isConnectedWifi(c) && SettingValues.lowResMobile) || SettingValues.lowResAlways) && submission.getThumbnails() != null && submission.getThumbnails().getVariations() != null && submission.getThumbnails().getVariations().length > 0) {
int length = submission.getThumbnails().getVariations().length;
if (SettingValues.lqLow && length >= 3) {
url = Html.fromHtml(submission.getThumbnails().getVariations()[2].getUrl()).toString();
} else if (SettingValues.lqMid && length >= 4) {
url = Html.fromHtml(submission.getThumbnails().getVariations()[3].getUrl()).toString();
} else if (length >= 5) {
url = Html.fromHtml(submission.getThumbnails().getVariations()[length - 1].getUrl()).toString();
} else {
url = Html.fromHtml(submission.getThumbnails().getSource().getUrl()).toString();
}
} else {
if (submission.getDataNode().has("preview") && submission.getDataNode().get("preview").get("images").get(0).get("source").has("height")) {
// Load the preview image which has probably already been cached in memory instead of the direct link
url = submission.getDataNode().get("preview").get("images").get(0).get("source").get("url").asText();
} else {
url = submission.getUrl();
}
}
((Reddit) c.getApplicationContext()).getImageLoader().loadImage(url, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
}
});
} else if (submission.getThumbnails() != null) {
if (((!NetworkUtil.isConnectedWifi(c) && SettingValues.lowResMobile) || SettingValues.lowResAlways) && submission.getThumbnails().getVariations().length != 0) {
int length = submission.getThumbnails().getVariations().length;
if (SettingValues.lqLow && length >= 3) {
url = Html.fromHtml(submission.getThumbnails().getVariations()[2].getUrl()).toString();
} else if (SettingValues.lqMid && length >= 4) {
url = Html.fromHtml(submission.getThumbnails().getVariations()[3].getUrl()).toString();
} else if (length >= 5) {
url = Html.fromHtml(submission.getThumbnails().getVariations()[length - 1].getUrl()).toString();
} else {
url = Html.fromHtml(submission.getThumbnails().getSource().getUrl()).toString();
}
} else {
url = Html.fromHtml(submission.getThumbnails().getSource().getUrl()).toString();
}
((Reddit) c.getApplicationContext()).getImageLoader().loadImage(url, new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
}
});
} else if (submission.getThumbnail() != null && (submission.getThumbnailType() == Submission.ThumbnailType.URL || submission.getThumbnailType() == Submission.ThumbnailType.NSFW)) {
((Reddit) c.getApplicationContext()).getImageLoader().loadImage(submission.getUrl(), new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
}
});
}
}
}
}
use of com.nostra13.universalimageloader.core.listener.ImageLoadingListener in project LibreraReader by foobnix.
the class ImageLoader method loadImage.
/**
* Adds load image task to execution pool. Image will be returned with
* {@link ImageLoadingListener#onLoadingComplete(String, android.view.View, android.graphics.Bitmap)}
* callback}. <br />
* <b>NOTE:</b> {@link #init(ImageLoaderConfiguration)} method must be
* called before this method call
*
* @param uri
* Image URI (i.e. "http://site.com/image.png",
* "file:///mnt/sdcard/image.png")
* @param targetImageSize
* Minimal size for {@link Bitmap} which will be returned in
* {@linkplain ImageLoadingListener#onLoadingComplete(String, android.view.View, android.graphics.Bitmap)}
* callback}. Downloaded image will be decoded and scaled to
* {@link Bitmap} of the size which is <b>equal or larger</b>
* (usually a bit larger) than incoming targetImageSize.
* @param options
* {@linkplain com.nostra13.universalimageloader.core.DisplayImageOptions
* Options} for image decoding and displaying. If <b>null</b> -
* default display image options
* {@linkplain ImageLoaderConfiguration.Builder#defaultDisplayImageOptions(DisplayImageOptions)
* from configuration} will be used.<br />
* @param listener
* {@linkplain ImageLoadingListener Listener} for image loading
* process. Listener fires events on UI thread if this method is
* called on UI thread.
* @param progressListener
* {@linkplain com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener
* Listener} for image loading progress. Listener fires events on
* UI thread if this method is called on UI thread. Caching on
* disk should be enabled in
* {@linkplain com.nostra13.universalimageloader.core.DisplayImageOptions
* options} to make this listener work.
* @throws IllegalStateException
* if {@link #init(ImageLoaderConfiguration)} method wasn't
* called before
*/
public int loadImage(String uri, ImageSize targetImageSize, DisplayImageOptions options, ImageLoadingListener listener, ImageLoadingProgressListener progressListener) {
checkConfiguration();
if (targetImageSize == null) {
targetImageSize = configuration.getMaxImageSize();
}
if (options == null) {
options = configuration.defaultDisplayImageOptions;
}
NonViewAware imageAware = new NonViewAware(uri, targetImageSize, ViewScaleType.CROP);
displayImage(uri, imageAware, options, listener, progressListener);
return imageAware.getId();
}
Aggregations