diff options
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.java | 118 |
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 |