/**
* Copyright 2016 bingoogolapple
* <p/>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p/>
* http://www.apache.org/licenses/LICENSE-2.0
* <p/>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package cn.bingoogolapple.photopicker.adapter;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import cn.bingoogolapple.photopicker.R;
import cn.bingoogolapple.photopicker.imageloader.BGAImage;
import cn.bingoogolapple.photopicker.util.BGABrowserPhotoViewAttacher;
import cn.bingoogolapple.photopicker.util.BGAPhotoPickerUtil;
import cn.bingoogolapple.photopicker.widget.BGAImageView;
import uk.co.senab.photoview.PhotoViewAttacher;
/**
* 作者:王浩 邮件:bingoogolapple@gmail.com
* 创建时间:16/6/27 下午6:35
* 描述:大图预览适配器
*/
public class BGAPhotoPageAdapter extends PagerAdapter {
private ArrayList<String> mPreviewImages;
private PhotoViewAttacher.OnViewTapListener mOnViewTapListener;
private Activity mActivity;
public BGAPhotoPageAdapter(Activity activity, PhotoViewAttacher.OnViewTapListener onViewTapListener, ArrayList<String> previewImages) {
mOnViewTapListener = onViewTapListener;
mPreviewImages = previewImages;
mActivity = activity;
}
@Override
public int getCount() {
return mPreviewImages == null ? 0 : mPreviewImages.size();
}
@Override
public View instantiateItem(ViewGroup container, int position) {
final BGAImageView imageView = new BGAImageView(container.getContext());
container.addView(imageView, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
final BGABrowserPhotoViewAttacher photoViewAttacher = new BGABrowserPhotoViewAttacher(imageView);
photoViewAttacher.setOnViewTapListener(mOnViewTapListener);
imageView.setDelegate(new BGAImageView.Delegate() {
@Override
public void onDrawableChanged(Drawable drawable) {
if (drawable != null && drawable.getIntrinsicHeight() > drawable.getIntrinsicWidth() && drawable.getIntrinsicHeight() > BGAPhotoPickerUtil.getScreenHeight()) {
photoViewAttacher.setIsSetTopCrop(true);
photoViewAttacher.setUpdateBaseMatrix();
} else {
photoViewAttacher.update();
}
}
});
BGAImage.display(imageView, R.mipmap.bga_pp_ic_holder_dark, mPreviewImages.get(position), BGAPhotoPickerUtil.getScreenWidth(), BGAPhotoPickerUtil.getScreenHeight());
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
public String getItem(int position) {
return mPreviewImages == null ? "" : mPreviewImages.get(position);
}
}