package me.storm.ninegag.ui;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.ImageLoadingProgressListener;
import com.nostra13.universalimageloader.core.assist.SimpleImageLoadingListener;
import butterknife.ButterKnife;
import butterknife.InjectView;
import me.storm.ninegag.R;
import me.storm.ninegag.view.ProgressWheel;
import me.storm.ninegag.view.swipeback.SwipeBackActivity;
import uk.co.senab.photoview.PhotoView;
import uk.co.senab.photoview.PhotoViewAttacher;
/**
* Created by storm on 14-4-15.
*/
public class ImageViewActivity extends SwipeBackActivity {
public static final String IMAGE_URL = "image_url";
@InjectView(R.id.photoView)
PhotoView photoView;
@InjectView(R.id.progressWheel)
ProgressWheel progressWheel;
private PhotoViewAttacher mAttacher;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_imageview);
ButterKnife.inject(this);
setTitle(R.string.view_big_image);
mAttacher = new PhotoViewAttacher(photoView);
mAttacher.setOnPhotoTapListener(new PhotoViewAttacher.OnPhotoTapListener() {
@Override
public void onPhotoTap(View view, float x, float y) {
finish();
}
});
String imageUrl = getIntent().getStringExtra(IMAGE_URL);
DisplayImageOptions options = new DisplayImageOptions.Builder().cacheOnDisc(true)
.considerExifParams(true).build();
ImageLoader.getInstance().displayImage(imageUrl, photoView, options, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
progressWheel.setVisibility(View.GONE);
mAttacher.update();
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current, int total) {
progressWheel.setProgress(360 * current / total);
}
});
}
@Override
public void onDestroy() {
super.onDestroy();
if (mAttacher != null) {
mAttacher.cleanup();
}
}
}