package me.cyning.news.ui.adapters; import android.support.v4.app.Fragment; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.jumige.android.common.adapter.ArrayListAdapter; import com.jumige.android.common.utils.CollectionUtil; import com.jumige.android.common.utils.DisplayUtil; import com.jumige.android.common.utils.StringUtils; import com.jumige.android.common.utils.ViewUtil; import com.jumige.android.ui.template.utils.CommonViewHolder; import cyning.me.libnerss.rss.Channel.ArticleItem; import cyning.me.libnerss.rss.WebInterface; import me.cyning.news.R; /** * Author: cyning * Date : 2015.04.27 * Time : 下午12:27 * Desc : 新闻列表 */ public class NewsAdapters extends ArrayListAdapter<ArticleItem> { public static final float RATIO_BANNER_PIC = 400 / 640f; public static final int TYPE_HEADER = 0; public static final int TYPE_COVER_TEXT = 1; public static final int TYPE_TEXT = 2; public static final int TYPE_SPECIAL_TOPIC = 3; public static final int TYPE_SPECIAL_PHOTOSET= 4; private Fragment mFragment =null; public NewsAdapters(Fragment _fragment) { super(_fragment.getActivity(),true); this.mFragment = _fragment; } @Override public int getItemViewType(int position) { ArticleItem mArticleItem = getItem(position); if (!StringUtils.isEmpty(mArticleItem.getImgsrc()) && position == 0){ return TYPE_HEADER; }else if (WebInterface.PHOTOSET.equals(mArticleItem.getSkipType()) &&CollectionUtil.isListMoreOne(mArticleItem.getImgextra())){ return TYPE_SPECIAL_PHOTOSET; }else if (!StringUtils.isEmpty(mArticleItem.getImgsrc())){ return TYPE_COVER_TEXT; }else{ return TYPE_TEXT; } } @Override public int getViewTypeCount() { return 4 + super.getViewTypeCount(); } @Override public ArticleItem getItem(int position) { return super.getItem(position); } @Override public View getView(int position, View convertView, ViewGroup parent) { int type = getItemViewType(position); if (convertView == null){ if (type == TYPE_COVER_TEXT){ convertView = View.inflate(mContext, R.layout.item_article_cover_text,null); }else if (TYPE_HEADER == type){ convertView = View.inflate(mContext,R.layout.item_article_header_cover,null); ImageView ivCover = ViewUtil.find(convertView,R.id.ivCover); ViewGroup.LayoutParams params = ivCover.getLayoutParams(); params.height = (int) (DisplayUtil.getScreenWidthInPx(mContext) * RATIO_BANNER_PIC); }else if (TYPE_SPECIAL_PHOTOSET == type){ convertView = View.inflate(mContext,R.layout.item_article_photoset,null); }else if (TYPE_TEXT == type){ convertView = View.inflate(mContext,R.layout.item_article_only_text,null); } } ArticleItem mItem = getItem(position); if (TYPE_SPECIAL_PHOTOSET == type){ ImageView ivCover1 = CommonViewHolder.get(convertView,R.id.ivCover); ImageView ivCover2 = CommonViewHolder.get(convertView,R.id.ivCover2); ImageView ivCover3 = CommonViewHolder.get(convertView,R.id.ivCover3); TextView tvTitle = CommonViewHolder.get(convertView,R.id.tvTitle); Glide.with(mFragment) .load(mItem.getImgsrc()) .centerCrop() .placeholder(R.drawable.icon_title) .crossFade() .into(ivCover1); Glide.with(mFragment) .load(mItem.getImgextra().get(0).getImgsrc()) .centerCrop() .placeholder(R.drawable.icon_title) .crossFade() .into(ivCover2); Glide.with(mFragment) .load(mItem.getImgextra().get(1).getImgsrc()) .centerCrop() .placeholder(R.drawable.icon_title) .crossFade() .into(ivCover3); }else{ ImageView ivCover = CommonViewHolder.get(convertView,R.id.ivCover); TextView tvSubTitle = CommonViewHolder.get(convertView,R.id.tvSubTitle); if (ivCover != null){ Glide.with(mFragment) .load(mItem.getImgsrc()) .centerCrop() .placeholder(R.drawable.icon_title) .crossFade() .into(ivCover); } if (tvSubTitle != null){ tvSubTitle.setText(getItem(position).getDigest()); } } TextView tvTitle = CommonViewHolder.get(convertView,R.id.tvTitle); if (tvTitle != null){ tvTitle.setText(getItem(position).getTitle()); } return convertView; } public class ViewHolderType1 { } }