summaryrefslogtreecommitdiff
path: root/app/src/main/java/uk/co/blatech/blaupload/ui/ImagePagerAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/uk/co/blatech/blaupload/ui/ImagePagerAdapter.java')
-rw-r--r--app/src/main/java/uk/co/blatech/blaupload/ui/ImagePagerAdapter.java118
1 files changed, 111 insertions, 7 deletions
diff --git a/app/src/main/java/uk/co/blatech/blaupload/ui/ImagePagerAdapter.java b/app/src/main/java/uk/co/blatech/blaupload/ui/ImagePagerAdapter.java
index 4f5dba0..df55eda 100644
--- a/app/src/main/java/uk/co/blatech/blaupload/ui/ImagePagerAdapter.java
+++ b/app/src/main/java/uk/co/blatech/blaupload/ui/ImagePagerAdapter.java
@@ -16,41 +16,145 @@
package uk.co.blatech.blaupload.ui;
import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Matrix;
+import android.graphics.RectF;
+import android.graphics.drawable.Drawable;
import android.support.v4.view.PagerAdapter;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
-import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView.ScaleType;
+import com.nostra13.universalimageloader.core.ImageLoader;
+import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
+import com.squareup.picasso.Picasso;
+import com.squareup.picasso.Target;
+
+import java.io.IOException;
import java.util.ArrayList;
+import uk.co.blatech.blaupload.R;
+
public class ImagePagerAdapter extends PagerAdapter {
private final ArrayList<String> mUrls;
private final Context mContext;
+ private float[] mWidths;
+
+ private float[] mHeights;
+ private int position;
+ private ViewGroup container;
+
+ private TouchImageView imageView;
+ private TouchImageView zoomImageView;
+ private ImageLoader imageLoader;
+ private ZoomViewPager mPager;
+ private ArrayList<String> filenames;
public ImagePagerAdapter(Context context, ArrayList<String> urls) {
mUrls = urls;
mContext = context;
+ mWidths = new float[mUrls.size()];
+
+ mHeights = new float[mUrls.size()];
+ filenames = new ArrayList<String>();
}
+
+ private Target target = new Target() {
+ @Override
+ public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
+ zoomImageView.setImageBitmap(bitmap);
+ zoomImageView.setVisibility(View.VISIBLE);
+ imageView.setVisibility(View.GONE);
+ }
+
+ @Override
+ public void onBitmapFailed(Drawable errorDrawable) {
+
+ }
+
+ @Override
+ public void onPrepareLoad(Drawable placeHolderDrawable) {
+
+ }
+
+
+ };
+
@Override
public int getCount() {
return null != mUrls ? mUrls.size() : 0;
}
@Override
- public View instantiateItem(ViewGroup container, int position) {
- NetworkCacheableImageView imageView = new NetworkCacheableImageView(mContext, null);
+ public View instantiateItem(ViewGroup con, int pos) {
+ container = con;
+ position = pos;
- String url = mUrls.get(position);
- imageView.loadImage(url, true, null);
+
+ LayoutInflater inflater = (LayoutInflater) container.getContext()
+ .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ View view = inflater.inflate(R.layout.image_pager_item, container, false);
+
+
+ imageView = (TouchImageView) view.findViewById(R.id.imageView);
+ zoomImageView = (TouchImageView) view.findViewById(R.id.zoomImageView);
+ final String url = mUrls.get(position);
+ String[] parts = url.split("/");
+ final String filename = parts[parts.length-1];
+
+
+ imageLoader = ImageLoader.getInstance();
+ imageLoader.displayImage(url, imageView);
imageView.setScaleType(ScaleType.FIT_CENTER);
- container.addView(imageView, LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
+ zoomImageView.setScaleType(ScaleType.FIT_CENTER);
+ container.refreshDrawableState();
+
+ imageView.setTag("img"+pos);
+ zoomImageView.setTag("zoom"+pos);
+ mWidths[position] = 0;
+ mHeights[position] = 0;
+ filenames.add(pos, filename);
+ mPager = (ZoomViewPager) container.findViewById(R.id.imagePager);
+
+ imageView.setOnTouchListener(new View.OnTouchListener() {
+ @Override
+ public boolean onTouch(View view, MotionEvent motionEvent) {
+ final TouchImageView thisImage = (TouchImageView) container.findViewWithTag("img" + mPager.getCurrentItem());
+ final TouchImageView zoomImage = (TouchImageView) container.findViewWithTag("zoom" + mPager.getCurrentItem());
+
+ if (thisImage.getCurrentZoom() > 1.0) {
+
+ imageLoader.displayImage("http://www.blaupload.co.uk/"+ filenames.get(mPager.getCurrentItem()), zoomImage, new SimpleImageLoadingListener() {
+ //
+ @Override
+ public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
+
+ zoomImage.setZoom(thisImage.getCurrentZoom());
+
+ zoomImage.setVisibility(View.VISIBLE);
+ thisImage.setVisibility(View.GONE);
+ }
+ });
+
+ }
+ Log.d(ImagePagerAdapter.class.toString(), "Initial width: "+ mWidths[position] +", height: "+ mHeights[position]);
+ Log.d(ImagePagerAdapter.class.toString(), "Current width: " + thisImage.getMeasuredWidth() + ", height: " + thisImage.getMeasuredHeight());
+ Log.d(ImagePagerAdapter.class.toString(), "Other width: " + thisImage.getWidth() + ", height: " + thisImage.getHeight());
+ Log.d(ImagePagerAdapter.class.toString(), "Zoom: " + thisImage.getCurrentZoom());
+ return true;
+ }
+ });
+
+ container.addView(view, 0);
- return imageView;
+ return view;
}
@Override