package com.cjj.cartoon.adapter; import java.util.List; import android.content.Context; import android.content.Intent; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import com.cjj.cartoon.MainActivity; import com.cjj.cartoon.R; import com.cjj.cartoon.constants.Constant; import com.cjj.cartoon.model.LocalImageModel; import com.cjj.staggeredgridview.STGVImageView; import com.norbsoft.typefacehelper.TypefaceHelper; import com.nostra13.universalimageloader.core.ImageLoader; import com.romainpiel.shimmer.Shimmer; import com.romainpiel.shimmer.ShimmerTextView; public class HomeListComicAdapter extends BaseAdapter{ private Context mContext; private List<LocalImageModel> mList; public HomeListComicAdapter(Context mContext,List<LocalImageModel> mList) { this.mContext = mContext; this.mList = mList; } @Override public int getCount() { return mList == null ?0:mList.size(); } @Override public LocalImageModel getItem(int position) { return mList == null?null:mList.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { View view = null; final LocalImageModel item = mList.get(position); if (convertView == null) { ViewHolder holder = new ViewHolder(); view = View.inflate(mContext, R.layout.item_comic_list, null); holder.iv_home_comic = (STGVImageView) view.findViewById(R.id.iv_home_comic); holder.tv_title = (ShimmerTextView) view.findViewById(R.id.tv_title_home); view.setTag(holder); } else { view = convertView; } ViewHolder holder = (ViewHolder) view.getTag(); /** * StaggeredGridView has bugs dealing with child TouchEvent * You must deal TouchEvent in the child view itself **/ holder.iv_home_comic.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); holder.tv_title.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); holder.iv_home_comic.mHeight = item.height; holder.iv_home_comic.mWidth = item.width; // Picasso.with(mContext).load(url).into(holder.iv_home_comic); if(Constant.checkVersionForShimmerEnable()) { shimmer = new Shimmer(); shimmer.start(holder.tv_title); } holder.tv_title.setText(mList.get(position).title); holder.tv_title.setBackgroundColor(Constant.COLORS_SELECT[Constant.K++%9]); ImageLoader.getInstance().displayImage("assets://"+mList.get(position).url, holder.iv_home_comic); /** * StaggeredGridView has bugs dealing with child TouchEvent * You must deal TouchEvent in the child view itself **/ holder.iv_home_comic.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { sloveOnclick(position); } }); holder.tv_title.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { sloveOnclick(position); } }); TypefaceHelper.typeface(view); return view; } protected void sloveOnclick(int position) { Intent intent = new Intent(mContext, MainActivity.class); intent.putExtra("link", mList.get(position).link); intent.putExtra("title", mList.get(position).title); mContext.startActivity(intent); } private Shimmer shimmer; public class ViewHolder { private STGVImageView iv_home_comic; private ShimmerTextView tv_title; } /** 回收资源 */ public void recycleAdapterResource() { if(Constant.checkVersionForShimmerEnable()) { shimmer.cancel(); shimmer = null; } mContext = null; mList = null; } }