package com.cjj.cartoon.adapter; import java.util.List; import uk.co.senab.photoview.PhotoView; import uk.co.senab.photoview.PhotoViewAttacher.OnViewTapListener; import android.content.Context; import android.graphics.Bitmap; import android.os.Handler; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.cjj.cartoon.ComicImageViewActivity; import com.cjj.cartoon.R; import com.cjj.cartoon.fragment.ComicImageFragment; import com.cjj.cartoon.util.ImageConfigBuilder; import com.cjj.volley.utils.LogUtil; import com.github.lzyzsd.circleprogress.ArcProgress; import com.norbsoft.typefacehelper.TypefaceHelper; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener; import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener; public class ComicPagerAdapter extends PagerAdapter { private Context context; private List<String> list; private boolean isShow = false; private int w, h; private ViewPager vp; private int index_now = 0; private ListView lv; private boolean isListView = false; TextView tv_number; private TextView tv_numbers; public ComicPagerAdapter(Context context, List<String> list, int w, int h, ViewPager vp,Handler handler) { this.list = list; this.context = context; this.w = w; this.h = h; this.vp = vp; } @Override public int getCount() { return list == null ? 0 : list.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == (View) arg1; } @Override public View instantiateItem(ViewGroup container, int position) { String url = list.get(position); View v = LayoutInflater.from(context).inflate( R.layout.comic_image_view, null); PhotoView photoView = (PhotoView) v.findViewById(R.id.iv_photo); final View ll_view = v.findViewById(R.id.ll_loading); final ArcProgress arcProgress = (ArcProgress) v.findViewById(R.id.arc_progress); TextView tv_page = (TextView) v.findViewById(R.id.tv_page); tv_page.setText(String.valueOf(position + 1)); index_now = position; ImageLoader.getInstance().displayImage(url, photoView, ImageConfigBuilder.TRANSPARENT_IMAGE, new SimpleImageLoadingListener() { /**start*/ @Override public void onLoadingStarted(String imageUri, View view) { super.onLoadingStarted(imageUri, view); ll_view.setVisibility(View.VISIBLE); arcProgress.setProgress(0); } /**failed*/ @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { super.onLoadingFailed(imageUri, view, failReason); // 加载失败的时候执行 LogUtil.LOgMsg_W("shibai"); ll_view.setVisibility(View.GONE); } /**complete*/ @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { super.onLoadingComplete(imageUri, view, loadedImage); // 加载成功的时候执行 ll_view.setVisibility(View.GONE); } /**cancel*/ @Override public void onLoadingCancelled(String imageUri, View view) { super.onLoadingCancelled(imageUri, view); } },new ImageLoadingProgressListener() { @Override public void onProgressUpdate(String imageUri, View view, int current, int total) { arcProgress.setProgress((Math.round(100.0f* current / total))); } }); container.addView(v); photoView.mAttacher.setOnViewTapListener(new ViewTapListener()); return v; } public interface PersentListener { public void onPersent(int cur, int total); } private PersentListener persentListener; public void setPersentListener(PersentListener persentListener) { this.persentListener = persentListener; } public void setTextPersent(int cur, int total) { tv_number.setText(cur / total * 100 + "%"); notifyDataSetChanged(); } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); } private class ViewTapListener implements OnViewTapListener { @Override public void onViewTap(View view, float x, float y) { index_now = vp.getCurrentItem(); if (x < (w / 3)) { showPrePage(); } else if (x > (w / 3 * 2)) { showNextPage(); } else { if (y < h / 6) { showNextPage(); } else if (y > h / 6 * 5) { showNextPage(); } else { showOrHideMenu(); } } } } public void showOrHideMenu() { if (isShow) { ComicImageViewActivity.comicImageViewActivity.hideMenuView(); ComicImageFragment.instance.showBatteryTip(); isShow = false; } else { ComicImageViewActivity.comicImageViewActivity.showMenuView(); ComicImageFragment.instance.hideBatteryTip(); isShow = true; } } public void hideMenu() { if (isShow) { ComicImageViewActivity.comicImageViewActivity.hideMenuView(); ComicImageFragment.instance.showBatteryTip(); isShow = false; } } public void toastMsg(String msg) { Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); } public void showPrePage() { if (index_now == 0) { toastMsg("当前是第一页"); } else { vp.setCurrentItem(index_now - 1); } } public void showNextPage() { if (index_now == list.size() - 1) { toastMsg("当前是最后一页"); } else { vp.setCurrentItem(index_now + 1); } } }