package com.wb.sc.adapter; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.text.TextUtils; import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import com.android.volley.Response.ErrorListener; import com.android.volley.Response.Listener; import com.android.volley.toolbox.NetworkImageView; import com.android.volley.toolbox.NetworkImageView.NetworkImageListener; import com.common.media.BitmapHelper; import com.common.widget.ToastHelper; import com.wb.sc.R; import com.wb.sc.app.SCApp; import com.wb.sc.bean.Favour; import com.wb.sc.bean.PostList; import com.wb.sc.bean.PostList.Item; import com.wb.sc.config.NetConfig; import com.wb.sc.config.RespCode; import com.wb.sc.mk.post.PostDetailActivity; import com.wb.sc.task.FavourRequest; import com.wb.sc.util.ImgUrlUtil; import com.wb.sc.util.ParamsUtil; public class PostListAdapter extends BaseAdapter implements NetworkImageListener, OnClickListener{ private Activity mActivity; private PostList mPostList; private int pItemWidth = 75; private int rightMargin = 4; //点赞 private FavListener favListener; public PostListAdapter(Activity activity, PostList list) { mActivity = activity; mPostList = list; DisplayMetrics dm = new DisplayMetrics(); activity.getWindowManager().getDefaultDisplay().getMetrics(dm); pItemWidth = (int) (pItemWidth * dm.density); rightMargin = (int) (rightMargin * dm.density); } @Override public int getCount() { return mPostList.datas.size(); } @Override public Object getItem(int position) { return mPostList.datas.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = null; ViewHolder holder; if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(mActivity); view = inflater.inflate(R.layout.post_list_item, null); holder = new ViewHolder(); holder.avatarIv = (NetworkImageView) view.findViewById(R.id.avatar); holder.nameTv = (TextView) view.findViewById(R.id.postMaster); holder.titleTv = (TextView) view.findViewById(R.id.postTitle); holder.timeTv = (TextView) view.findViewById(R.id.postTime); holder.descTv = (TextView) view.findViewById(R.id.postName); holder.msgNumTv = (TextView) view.findViewById(R.id.msg_num); holder.favNumTv = (TextView) view.findViewById(R.id.favourite_num); holder.favVg = (ViewGroup) view.findViewById(R.id.fav_layout); holder.imgVg = (LinearLayout) view.findViewById(R.id.imgs); holder.img1Iv = (NetworkImageView) view.findViewById(R.id.img1); holder.img2Iv = (NetworkImageView) view.findViewById(R.id.img2); holder.img3Iv = (NetworkImageView) view.findViewById(R.id.img3); holder.img4Iv = (NetworkImageView) view.findViewById(R.id.img4); holder.imgIvList = new ArrayList<NetworkImageView>(); holder.imgIvList.add(holder.img1Iv); holder.imgIvList.add(holder.img2Iv); holder.imgIvList.add(holder.img3Iv); holder.imgIvList.add(holder.img4Iv); // holder.imgLv = (HorizontalListView) view.findViewById(R.id.list); // holder.imgLv.setVisibility(View.GONE); view.setTag(holder); } else { view = convertView; holder = (ViewHolder) view.getTag(); } holder.favVg.setOnClickListener(this); holder.favVg.setTag(position + ""); Item item = mPostList.datas.get(position); holder.avatarIv.setImageUrl(NetConfig.getPictureUrl(item.sourceAvatarUrl), SCApp.getInstance().getImageLoader()); holder.nameTv.setText(item.sourceName); holder.titleTv.setText(item.title); holder.timeTv.setText(item.time); holder.descTv.setText(item.content); holder.msgNumTv.setText(item.commentNum); holder.favNumTv.setText(item.favNum); // item.imgList.clear(); // item.imgList.add("http://img5.cache.netease.com/photo/0001/2014-11-02/AA2G0LS100AN0001.jpg"); // item.imgList.add("http://img5.cache.netease.com/photo/0001/2014-11-02/AA2G0LS100AN0001.jpg"); // item.imgList.add("http://img5.cache.netease.com/photo/0001/2014-11-02/AA2G0LS100AN0001.jpg"); // item.imgList.add("http://img5.cache.netease.com/photo/0001/2014-11-02/AA2G0LS100AN0001.jpg"); // item.imgList.add("http://img5.cache.netease.com/photo/0001/2014-11-02/AA2G0LS100AN0001.jpg"); // item.imgList.add("http://img5.cache.netease.com/photo/0001/2014-11-02/AA2G0LS100AN0001.jpg"); // holder.imgVg.removeAllViews(); for(NetworkImageView iv : holder.imgIvList) { iv.setVisibility(View.GONE); } if(item.imgList.size() > 0) { // PostImgAdapter adapter = new PostImgAdapter(mContext, item.imgList); // holder.imgLv.setAdapter(adapter); // holder.imgLv.setVisibility(View.GONE); holder.imgVg.setVisibility(View.VISIBLE); for(int i=0; i<item.imgList.size() && i < 4; i++) { String imgUrl = item.imgList.get(i); if(!TextUtils.isEmpty(imgUrl)) { // NetworkImageView itemIv = new NetworkImageView(mActivity); holder.imgIvList.get(i).setVisibility(View.VISIBLE); NetworkImageView itemIv = holder.imgIvList.get(i); String smallImgUrl = ImgUrlUtil.getSmallUrl(imgUrl); itemIv.setImageUrl(NetConfig.getPictureUrl(smallImgUrl), SCApp.getInstance().getImageLoader()); // holder.imgVg.addView(itemIv); // LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams)itemIv.getLayoutParams(); // lp.width = pItemWidth; // lp.height = pItemWidth; // lp.rightMargin = rightMargin; } } } else { // holder.imgLv.setVisibility(View.GONE); holder.imgVg.setVisibility(View.GONE); } return view; } class ViewHolder { NetworkImageView avatarIv; TextView nameTv; TextView titleTv; TextView timeTv; TextView descTv; TextView msgNumTv; TextView favNumTv; LinearLayout imgVg; NetworkImageView img1Iv; NetworkImageView img2Iv; NetworkImageView img3Iv; NetworkImageView img4Iv; List<NetworkImageView> imgIvList; ViewGroup favVg; // HorizontalListView imgLv; } @Override public void onGetBitmapListener(ImageView imageView, Bitmap bitmap) { Bitmap roundBmp = BitmapHelper.toRoundCorner(bitmap, bitmap.getHeight()/2); imageView.setImageBitmap(roundBmp); } @Override public void onClick(View v) { try { int position = Integer.valueOf(v.getTag().toString()); if(favListener != null) { favListener.onFav(position); } } catch (Exception e) { e.printStackTrace(); } } public interface FavListener { public void onFav(int position); } public void setFavListener(FavListener listener) { favListener = listener; } }