package com.qianfeng.gl4study.snssdk.adapter;
import android.content.Context;
import android.net.Uri;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import com.qianfeng.gl4study.snssdk.R;
import com.qianfeng.gl4study.snssdk.model.Snssdk;
import com.qianfeng.gl4study.snssdk.utils.Utils;
import java.util.List;
/**
* 主界面ListView的Adapter
* Created with IntelliJ IDEA.
* I'm glad to share my knowledge with you all.
* User:Gaolei
* Date:2015/3/5
* Email:pdsfgl@live.com
*/
public class SnssdkMainAdapter extends BaseAdapter{
private Context context;
private List<Snssdk> snssdks;
private View.OnClickListener listener;
public SnssdkMainAdapter(Context context, List<Snssdk> snssdks) {
this.context = context;
this.snssdks = snssdks;
if(context instanceof View.OnClickListener){
listener = (View.OnClickListener)context;
}
}
@Override
public int getCount() {
if(snssdks!=null){
return snssdks.size();
}
return 0;
}
@Override
public Object getItem(int position) {
if(snssdks!=null){
return snssdks.get(position);
}
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
if(convertView !=null) {
view = convertView;
}else {
view = LayoutInflater.from(context).inflate(R.layout.item_fragment_word, parent, false);
}
ViewHolder viewHolder = (ViewHolder) view.getTag();
if(viewHolder == null){
viewHolder = new ViewHolder();
viewHolder.itemWord = (TextView) view.findViewById(R.id.item_fragment_word);
viewHolder.itemImage = (ImageView) view.findViewById(R.id.item_fragment_image);
viewHolder.itemVideo = (VideoView) view.findViewById(R.id.item_fragment_video);
viewHolder.txtGood = (TextView) view.findViewById(R.id.item_fragment_bar_good);
viewHolder.txtBad = (TextView) view.findViewById(R.id.item_fragment_bar_bad);
viewHolder.txtHot = (TextView) view.findViewById(R.id.item_fragment_bar_hot);
viewHolder.userImage = (ImageView) view.findViewById(R.id.item_fragment_user_icon);
viewHolder.userName = (TextView) view.findViewById(R.id.item_fragment_user_name);
viewHolder.layoutFragmentCommon = (LinearLayout) view.findViewById(R.id.item_fragment_common);
viewHolder.layoutFragmentUser = (LinearLayout) view.findViewById(R.id.item_fragment_bar_user_ll);
viewHolder.imgForward = (ImageView) view.findViewById(R.id.item_fragment_bar_forward_img);
viewHolder.llGood = (RelativeLayout) view.findViewById(R.id.item_fragment_bar_good_ll);
viewHolder.llBad = (RelativeLayout) view.findViewById(R.id.item_fragment_bar_bad_ll);
viewHolder.llHot = (LinearLayout) view.findViewById(R.id.item_fragment_bar_hot_ll);
viewHolder.layoutFragmenForward = (LinearLayout) view.findViewById(R.id.item_fragment_bar_forward_ll);
viewHolder.imgGood = (ImageView) view.findViewById(R.id.item_fragment_bar_good_img);
viewHolder.imgBad = (ImageView) view.findViewById(R.id.item_fragment_bar_bad_img);
viewHolder.imgHot = (ImageView) view.findViewById(R.id.item_fragment_bar_hot_img);
viewHolder.llGood.setTag(position);
viewHolder.llBad.setTag(position);
viewHolder.llHot.setTag(position);
viewHolder.layoutFragmentCommon.setTag(position);
viewHolder.layoutFragmentUser.setTag(position);
viewHolder.layoutFragmenForward.setTag(position);
viewHolder.llGood.setOnClickListener(listener);
viewHolder.llBad.setOnClickListener(listener);
viewHolder.llHot.setOnClickListener(listener);
viewHolder.layoutFragmentCommon.setOnClickListener(listener);
viewHolder.layoutFragmentUser.setOnClickListener(listener);
viewHolder.layoutFragmenForward.setOnClickListener(listener);
}
Snssdk snssdk = snssdks.get(position);
int snssdkType = snssdk.getCategory_type();
switch (snssdkType) {
case 2: //图片类型段子
//显示图片组件
viewHolder.itemImage.setVisibility(View.VISIBLE);
//占位图
viewHolder.itemImage.setImageResource(R.drawable.loading_icon);
String imageUrl = snssdk.getInageContentURL();
Utils.loaderImage(view.getWidth(), viewHolder.itemImage, imageUrl);
break;
case 18: //视频类型段子
viewHolder.itemImage.setVisibility(View.VISIBLE);
//占位图
viewHolder.itemImage.setImageResource(R.drawable.loading_icon);
imageUrl = snssdk.getInageContentURL();
Utils.loaderImage(view.getWidth(), viewHolder.itemImage, imageUrl);
//viewHolder.itemImage.setVisibility(View.GONE);
//TODO 实际过程应该是视频下载完成,进行隐藏图片,播放视频的操作
//viewHolder.itemVideo.setVisibility(View.VISIBLE);
String videoContentURL = snssdk.getVideoContentURL();
if(!TextUtils.isEmpty(videoContentURL)) {
viewHolder.itemVideo.setVideoURI(Uri.parse(videoContentURL));
}
break;
}
viewHolder.itemWord.setText(snssdk.getContent());
viewHolder.txtGood.setText(snssdk.getDigg_count()+"");
viewHolder.txtBad.setText(snssdk.getRepin_count()+"");
viewHolder.txtHot.setText(snssdk.getComment_count()+"");
viewHolder.userName.setText(snssdk.getName());
String avatarUrl = snssdk.getAvatar_url();
//加载头像
Utils.loaderImage(-1,viewHolder.userImage, avatarUrl);
//评论条的显示
if(snssdk.getUser_digg()==1){
viewHolder.imgGood.setImageResource(R.drawable.ic_bar_digg_pressed);
}else {
viewHolder.imgGood.setImageResource(R.drawable.ic_bar_digg_normal);
}
if(snssdk.getUser_repin()==1){
viewHolder.imgBad.setImageResource(R.drawable.ic_bar_bury_pressed);
}else {
viewHolder.imgBad.setImageResource(R.drawable.ic_bar_bury_normal);
}
if(snssdk.getComment_count()>500){
viewHolder.imgHot.setImageResource(R.drawable.ic_bar_hot_commenticon_pressed);
}else {
viewHolder.imgHot.setImageResource(R.drawable.ic_bar_hot_commenticon);
}
viewHolder.imgForward.setImageResource(R.drawable.ic_bar_more_action_normal);
return view;
}
public static class ViewHolder {
private TextView itemWord;
private ImageView itemImage;
private VideoView itemVideo;
private TextView txtGood;
private TextView txtBad;
private TextView txtHot;
private ImageView imgGood;
private ImageView imgBad;
private ImageView imgHot;
private ImageView imgForward;
private ImageView userImage;
private TextView userName;
private LinearLayout layoutFragmentCommon;
private LinearLayout layoutFragmenForward;
private LinearLayout layoutFragmentUser;
private RelativeLayout llGood;
private RelativeLayout llBad;
private LinearLayout llHot;
}
}