图文混排

package com.rong.adapter;

import java.text.SimpleDateFormat;
import java.util.List;

import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.rong.bean.Data;
import com.rong.view.R;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MyListViewAdapter extends BaseAdapter {

	private List<Data> list;
	private Context context;

	DisplayImageOptions options = new DisplayImageOptions.Builder()
			.showImageForEmptyUri(R.drawable.ic_launcher)
			.bitmapConfig(Bitmap.Config.RGB_565)
			.showImageOnFail(R.drawable.account_icon_mobile)
			// 图片加载中,显示的默认图片
			.showImageOnLoading(R.drawable.account_icon_mobile)
			.showImageForEmptyUri(R.drawable.account_icon_mobile).build();

	final SHARE_MEDIA[] displaylist = new SHARE_MEDIA[] { SHARE_MEDIA.WEIXIN,
			SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.SINA, SHARE_MEDIA.QQ,
			SHARE_MEDIA.QZONE, SHARE_MEDIA.DOUBAN };

	public MyListViewAdapter(List<Data> list, Context context) {
		super();
		this.list = list;
		this.context = context;
	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return list.size();
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return 0;
	}

	public View getView(int position, View convertView, ViewGroup parent) {
		// 获取当前条目显示的类型
		int itemViewType = getItemViewType(position);
		ViewHolder1 holder1 = null;
		ViewHolder2 holder2 = null;
		ViewHolder3 holder3 = null;
		ViewHolder4 holder4 = null;
		ViewHolder5 holder5 = null;

		if (convertView == null) {
			switch (itemViewType) {
			case 0:
				// 根据数据类型,加载有图片的布局文件
				convertView = View.inflate(context, R.layout.item_lv_case1,
						null);
				// 实例化对象
				holder1 = new ViewHolder1();

				holder1.tv_pinglun = (TextView) convertView
						.findViewById(R.id.tv_pinglun);
				holder1.tv_title_lv_frag = (TextView) convertView
						.findViewById(R.id.tv_title_lv_frag);
				holder1.tv_title_lv_label = (TextView) convertView
						.findViewById(R.id.tv_title_lv_label);
				holder1.tv_title_lv_source = (TextView) convertView
						.findViewById(R.id.tv_title_lv_source);
				holder1.tv_pinlun_num = (TextView) convertView
						.findViewById(R.id.tv_pinlun_num);
				holder1.tv_time = (TextView) convertView
						.findViewById(R.id.tv_time);

				convertView.setTag(holder1);
				break;
			case 1:
				// 根据数据类型,加载有图片的布局文件
				convertView = View.inflate(context, R.layout.item_lv_case2,
						null);
				// 实例化对象
				holder2 = new ViewHolder2();
				holder2.iv_case2_1 = (ImageView) convertView
						.findViewById(R.id.iv_case2_1);
				holder2.tv_case2_title = (TextView) convertView
						.findViewById(R.id.tv_case2_title);
				holder2.tv_case2_source = (TextView) convertView
						.findViewById(R.id.tv_case2_source);
				holder2.tv_case2_pinlun = (TextView) convertView
						.findViewById(R.id.tv_case2_pinlun);
				holder2.tv_case2_time = (TextView) convertView
						.findViewById(R.id.tv_case2_time);

				convertView.setTag(holder2);

				break;
			case 2:

				// 根据数据类型,加载有图片的布局文件
				convertView = View.inflate(context, R.layout.item_lv_case3,
						null);
				// 实例化对象
				holder3 = new ViewHolder3();
				holder3.iv_case3_1 = (ImageView) convertView
						.findViewById(R.id.iv_case3_1);
				holder3.tv_case3_title = (TextView) convertView
						.findViewById(R.id.tv_case3_title);
				holder3.tv_case3_source = (TextView) convertView
						.findViewById(R.id.tv_case3_source);
				holder3.tv_case3_pinlun = (TextView) convertView
						.findViewById(R.id.tv_case3_pinlun);
				convertView.setTag(holder3);

				break;
			case 3:

				// 根据数据类型,加载有图片的布局文件
				convertView = View.inflate(context, R.layout.item_lv_case4,
						null);
				// 实例化对象
				holder4 = new ViewHolder4();
				holder4.iv_case4_1 = (ImageView) convertView
						.findViewById(R.id.iv_case4_1);
				holder4.iv_case4_2 = (ImageView) convertView
						.findViewById(R.id.iv_case4_2);
				holder4.iv_case4_3 = (ImageView) convertView
						.findViewById(R.id.iv_case4_3);
				holder4.tv_case4_title = (TextView) convertView
						.findViewById(R.id.tv_case4_title);
				holder4.tv_case4_source = (TextView) convertView
						.findViewById(R.id.tv_case4_source);
				convertView.setTag(holder4);
				holder4.tv_case4_pinlun = (TextView) convertView
						.findViewById(R.id.tv_case4_pinlun);
				convertView.setTag(holder4);
				holder4.tv_case4_time = (TextView) convertView
						.findViewById(R.id.tv_case4_time);

				convertView.setTag(holder4);

				break;

			case 4:

				// 根据数据类型,加载有图片的布局文件
				convertView = View.inflate(context, R.layout.item_lv_case5,
						null);
				// 实例化对象
				holder5 = new ViewHolder5();
				holder5.iv_item_case5_1 = (ImageView) convertView
						.findViewById(R.id.iv_item_case5_1);
				holder5.iv_item_case5_2 = (ImageView) convertView
						.findViewById(R.id.iv_item_case5_2);
				holder5.iv_item_case5_3 = (ImageView) convertView
						.findViewById(R.id.iv_item_case5_3);
				holder5.iv_item_case5_4 = (ImageView) convertView
						.findViewById(R.id.iv_item_case5_4);
				holder5.iv_item_case5_5 = (ImageView) convertView
						.findViewById(R.id.iv_item_case5_5);
				holder5.iv_item_case5_6 = (ImageView) convertView
						.findViewById(R.id.iv_item_case5_6);

				holder5.tv_item_case5_1 = (TextView) convertView
						.findViewById(R.id.tv_item_case5_1);
				holder5.tv_item_case5_2 = (TextView) convertView
						.findViewById(R.id.tv_item_case5_2);
				holder5.tv_item_case5_3 = (TextView) convertView
						.findViewById(R.id.tv_item_case5_3);
				holder5.tv_item_case5_4 = (TextView) convertView
						.findViewById(R.id.tv_item_case5_4);

				convertView.setTag(holder5);

				break;
			}

		} else {

			switch (itemViewType) {
			case 0:
				holder1 = (ViewHolder1) convertView.getTag();
				break;
			case 1:
				holder2 = (ViewHolder2) convertView.getTag();
				break;
			case 2:
				holder3 = (ViewHolder3) convertView.getTag();
				break;
			case 3:
				holder4 = (ViewHolder4) convertView.getTag();
				break;
			case 4:
				holder5 = (ViewHolder5) convertView.getTag();
				break;

			}
		}

		// 给控件赋值
		Data data = list.get(position);
		// 得到ImageLoader
		ImageLoader instance = ImageLoader.getInstance();
		switch (itemViewType) {
		case 0:

			String title1 = data.title;// 标题
			if (title1 != null && !"".equals(title1) && !"".equals(title1)) {
				holder1.tv_title_lv_frag.setText(data.title);// 设置标题

			}
			holder1.tv_pinglun.setText("评论");
			String comment_count = data.comment_count;// 评论
			// 标签
			String label1 = data.label;
			if (label1 != null && !"".equals(label1) && !"".equals(label1)) {

				holder1.tv_title_lv_label.setText(label1);
			}
			String source1 = data.source;
			if (source1 != null && !"".equals(source1) && !"".equals(source1)) {

				holder1.tv_title_lv_source.setText(source1);
			}
			// 设置评论
			if (Integer.parseInt(comment_count) == 0) {

				holder1.tv_pinlun_num.setVisibility(View.GONE);
			}
			// 设置时间
			SimpleDateFormat format = new SimpleDateFormat(
					"yyyy/MM/dd HH:mm:ss");
			long time = Long.parseLong(data.publish_time);
			String str1 = format.format(time);
			holder1.tv_time.setText(str1);

			break;
		case 1:

			instance.displayImage(data.large_image_list.get(0).url,
					holder2.iv_case2_1);
			holder2.tv_case2_title.setText(data.title);
			holder2.tv_case2_source.setText(data.source);
			// 设置评论
			if (Integer.parseInt(data.comment_count) == 0) {

				holder2.tv_case2_pinlun.setVisibility(View.GONE);
			} else {

				holder2.tv_case2_pinlun.setText("评论  " + data.comment_count);
			}
			SimpleDateFormat format1 = new SimpleDateFormat(
					"yyyy/MM/dd HH:mm:ss");
			long time1 = Long.parseLong(data.publish_time);
			String str2 = format1.format(time1);
			holder2.tv_case2_time.setText(str2);

			break;

		case 2:

			instance.displayImage(data.middle_image.url, holder3.iv_case3_1);
			holder3.tv_case3_title.setText(data.title);
			String source3 = data.source;
			if (source3 != null && !"".equals(source3) && !"".equals(source3)) {
				holder3.tv_case3_source.setText(source3);
			}
			// 评论
			String comment_count2 = data.comment_count;
			holder3.tv_case3_pinlun.setText("评论" + comment_count2);

			break;
		case 3:

			instance.displayImage(data.image_list.get(0).url,
					holder4.iv_case4_1);
			instance.displayImage(data.image_list.get(1).url,
					holder4.iv_case4_2);
			instance.displayImage(data.image_list.get(2).url,
					holder4.iv_case4_3);
			holder4.tv_case4_title.setText(data.title);
			holder4.tv_case4_source.setText(data.source);
			// 设置评论
			if (Integer.parseInt(data.comment_count) == 0) {

				holder4.tv_case4_pinlun.setVisibility(View.GONE);
			} else {

				holder4.tv_case4_pinlun.setText("评论  " + data.comment_count);
			}
			SimpleDateFormat format3 = new SimpleDateFormat(
					"yyyy/MM/dd HH:mm:ss");
			long time3 = Long.parseLong(data.publish_time);
			String str4 = format3.format(time3);
			holder4.tv_case4_time.setText(str4);

			break;

		case 4:
			instance.displayImage(data.large_image.url_list.get(0).url,
					holder5.iv_item_case5_1);
			String screen_name = data.screen_name;
			if (!"".equals(screen_name) && !"".equals(screen_name.trim())
					&& screen_name != null) {

				holder5.tv_item_case5_1.setText(screen_name);
			} else {
				holder5.tv_item_case5_1.setVisibility(View.GONE);
			}
			holder5.tv_item_case5_2.setText(data.digg_count);
			// holder5.tv_item_case5_3.setText(data.repin_count);
			holder5.tv_item_case5_4.setText(data.repin_count);
			holder5.iv_item_case5_6.setOnClickListener(new OnClickListener() {

				@Override
				public void onClick(View v) {

					UMImage image = new UMImage(context, BitmapFactory
							.decodeResource(context.getResources(),
									R.drawable.boy_3));

					new ShareAction((Activity) context)
							.setDisplayList(displaylist).withText("呵呵")
							.withTitle("title")
							.withTargetUrl("http://www.baidu.com")
							.withMedia(image)
							.setListenerList(new UMShareListener() {
								@Override
								public void onResult(SHARE_MEDIA platform) {
									Toast.makeText(context,
											platform + " 分享成功啦",
											Toast.LENGTH_SHORT).show();
								}

								@Override
								public void onError(SHARE_MEDIA platform,
										Throwable t) {
									Toast.makeText(context,
											platform + " 分享失败啦",
											Toast.LENGTH_SHORT).show();
								}

								@Override
								public void onCancel(SHARE_MEDIA platform) {
									Toast.makeText(context,
											platform + " 分享取消了",
											Toast.LENGTH_SHORT).show();
								}
							}).open();
				}
			});

			break;
		}

		return convertView;
	}

	@Override
	public int getItemViewType(int position) {
		Data data = list.get(position);
		if (data.large_image_list != null && data.large_image_list.size() > 0) {
			return 1;
		} else if (!"".equals(data.large_image) && data.large_image != null) {
			return 4;
		} else if (data.middle_image != null && !"".equals(data.middle_image)) {
			return 2;
		} else if (data.image_list != null && data.image_list.size() == 3) {
			return 3;
		} else {
			return 0;
		}

	}

	@Override
	public int getViewTypeCount() {

		return 5;
	}

	// case0
	class ViewHolder1 {
		TextView tv_title_lv_frag;
		TextView tv_title_lv_label;
		TextView tv_title_lv_source;
		TextView tv_pinglun;
		TextView tv_pinlun_num;
		TextView tv_time;

	}

	// case1
	class ViewHolder2 {
		TextView tv_case2_title;
		TextView tv_case2_source;
		TextView tv_case2_pinlun;
		TextView tv_case2_time;
		ImageView iv_case2_1;
	}

	// case2
	class ViewHolder3 {

		TextView tv_case3_title;
		TextView tv_case3_source;
		TextView tv_case3_pinlun;
		ImageView iv_case3_1;
	}

	// case3
	class ViewHolder4 {
		TextView tv_case4_title;
		TextView tv_case4_source;
		TextView tv_case4_pinlun;
		TextView tv_case4_time;
		ImageView iv_case4_1;
		ImageView iv_case4_2;
		ImageView iv_case4_3;
	}

	// case4
	class ViewHolder5 {
		TextView tv_item_case5_1;
		TextView tv_item_case5_2;
		TextView tv_item_case5_3;
		TextView tv_item_case5_4;
		ImageView iv_item_case5_1;
		ImageView iv_item_case5_2;
		ImageView iv_item_case5_3;
		ImageView iv_item_case5_4;
		ImageView iv_item_case5_5;
		ImageView iv_item_case5_6;
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值