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.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.Toast;
import android.widget.ImageView.ScaleType;
import android.widget.LinearLayout;
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.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import com.nostra13.universalimageloader.core.listener.ImageLoadingProgressListener;
public class ComicListViewAdapter extends BaseAdapter{
private Context context;
private List<String> list;
private int w;
private ListView lv;
private int index ;
public ComicListViewAdapter(Context context,List<String> list,ListView lv,int w){
this.context = context;
this.list = list;
this.lv = lv;
this.w = w;
}
@Override
public int getCount() {
return list.size();
}
@Override
public String getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getViewTypeCount() {
// menu type count
return 3;
}
@Override
public int getItemViewType(int position) {
// current menu type
return position % 3;
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
if (convertView == null) {
convertView = View.inflate(context,
R.layout.comic_image_view_listview, null);
new ViewHolder(convertView);
}
final ViewHolder holder = (ViewHolder) convertView.getTag();
String item = getItem(position);
ImageLoader.getInstance().displayImage(item, holder.iv_photo,ImageConfigBuilder.USER_HEAD_HD_OPTIONS,new ImageLoadingListener() {
@Override
public void onLoadingStarted(String arg0, View arg1) {
holder.ll_view.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String arg0, View arg1, FailReason arg2) {
//加载失败的时候执行
holder.ll_view.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingComplete(String arg0, View arg1, Bitmap arg2) {
//加载成功的时候执行
holder.ll_view.setVisibility(View.GONE);
}
@Override
public void onLoadingCancelled(String arg0, View arg1) {
}
},new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri, View view, int current,int total) {
LogUtil.LOgMsg_W("curr="+current);
LogUtil.LogMsg_I("total="+total);
}
});
holder.iv_photo.mAttacher.setOnViewTapListener(new ViewTapListener());
index = position;
return convertView;
}
private class ViewTapListener implements OnViewTapListener{
@Override
public void onViewTap(View view, float x, float y) {
if(x<(w/3))
{
if(index!=0)
{
lv.setSelection(index-1);
}else
{
Toast.makeText(context, "当前是第一页", 1).show();
}
}else if(x>(w/3*2))
{
if(index!=getCount())
{
lv.setSelection(index+1);
}else
{
Toast.makeText(context, "当前是最后一页", 1).show();
}
}else{
showOrHideMenu();
}
}
}
private boolean isShow = false;
public void showOrHideMenu()
{
if(isShow)
{
ComicImageViewActivity.comicImageViewActivity.hideMenuView();
ComicImageFragment.instance.showBatteryTip();
isShow = false;
}else
{
ComicImageViewActivity.comicImageViewActivity.showMenuView();
ComicImageFragment.instance.hideBatteryTip();
isShow = true;
}
}
class ViewHolder {
PhotoView iv_photo;
LinearLayout ll_view;
public ViewHolder(View view) {
iv_photo = (PhotoView) view.findViewById(R.id.iv_photo);
ll_view = (LinearLayout) view.findViewById(R.id.ll_loading);
iv_photo.setScaleType(ScaleType.FIT_XY);
view.setTag(this);
}
}
}