package com.haicaojie.android.ui.mine;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.graphics.Paint;
|
import android.text.Html;
|
import android.text.Spannable;
|
import android.text.SpannableString;
|
import android.text.Spanned;
|
import android.text.style.RelativeSizeSpan;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.BaseAdapter;
|
import android.widget.CheckBox;
|
import android.widget.CompoundButton;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.TextView;
|
|
import com.lcjian.library.util.common.StringUtils;
|
import com.lcjian.library.widget.RatioLayout;
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
|
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
|
import com.haicaojie.android.R;
|
import com.haicaojie.android.entity.TaoBaoGoodsBrief;
|
import com.haicaojie.android.ui.recommend.GoodsBrowserActivity;
|
import com.haicaojie.android.util.VerticalImageSpan;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* Created by weikou2015 on 2017/2/24.
|
*/
|
|
public class FootmarkAdapter extends BaseAdapter {
|
private List<TaoBaoGoodsBrief> wList;
|
private Context mContext;
|
private Map<Integer, Boolean> mCBFlag = null;
|
private DisplayImageOptions options;
|
|
public FootmarkAdapter(Context context, List<TaoBaoGoodsBrief> wList) {
|
this.mContext = context;
|
this.wList = wList;
|
this.options = new DisplayImageOptions.Builder()
|
.showImageForEmptyUri(R.drawable.ic_goods_default)
|
.showImageOnFail(R.drawable.ic_goods_default)
|
.showImageOnLoading(R.drawable.ic_goods_default)
|
.resetViewBeforeLoading(true).cacheInMemory(true)
|
.cacheOnDisk(true).imageScaleType(ImageScaleType.EXACTLY)
|
.considerExifParams(true)
|
.displayer(new FadeInBitmapDisplayer(300)).build();
|
mCBFlag = new HashMap<Integer, Boolean>();
|
init(null);
|
}
|
|
public void init(List<TaoBaoGoodsBrief> addList) {
|
if (addList == null) {
|
for (int i = 0; i < wList.size(); i++)
|
mCBFlag.put(i, false);
|
} else {
|
for (int i = wList.size() - addList.size(); i < wList.size(); i++)
|
mCBFlag.put(i, false);
|
notifyDataSetChanged();
|
}
|
}
|
|
@Override
|
public int getCount() {
|
return wList == null ? 0 : wList.size();
|
}
|
|
@Override
|
public Object getItem(int position) {
|
return wList.get(position);
|
}
|
|
@Override
|
public long getItemId(int position) {
|
return position;
|
}
|
|
@Override
|
public View getView(final int position, View convertView, ViewGroup parent) {
|
final ViewHolder viewHolder;
|
if (convertView == null) {
|
convertView = LayoutInflater.from(mContext).inflate(
|
R.layout.item_footmark, null);
|
viewHolder = new ViewHolder();
|
viewHolder.ratioLayout = (RatioLayout) convertView
|
.findViewById(R.id.item_recommend_gv_ral);
|
viewHolder.iv_pic = (ImageView) convertView
|
.findViewById(R.id.iv_movie_cover);
|
viewHolder.tv_red_packet1 = (TextView) convertView
|
.findViewById(R.id.tv_red_packet1);
|
viewHolder.tv_name = (TextView) convertView
|
.findViewById(R.id.tv_movie_title);
|
viewHolder.fl_edit = (FrameLayout) convertView.findViewById(R.id.fl_edit);
|
viewHolder.cb_edit = (CheckBox) convertView.findViewById(R.id.cb_edit);
|
viewHolder.tv_price = (TextView) convertView.findViewById(R.id.tv_price);
|
// viewHolder.tv_carriage = (TextView) convertView.findViewById(R.id.tv_carroage);
|
viewHolder.tv_favourable = (TextView) convertView.findViewById(R.id.tv_favourable);
|
viewHolder.tv_sale_num = (TextView) convertView.findViewById(R.id.tv_sale_num);
|
convertView.setTag(viewHolder);
|
} else {
|
viewHolder = (ViewHolder) convertView.getTag();
|
}
|
viewHolder.ratioLayout.setRatio(1.0f);
|
final TaoBaoGoodsBrief info = wList.get(position);
|
showImageFace(wList.get(position).getTitle(), wList.get(position).getShopType(), viewHolder.tv_name);
|
// 图片
|
// Glide.with(mContext).load(wList.get(position).getPictUrl()).transform(new GlideRoundTransform(mContext)).into(viewHolder.iv_pic);
|
ImageLoader.getInstance().displayImage(wList.get(position).getPictUrl(), viewHolder.iv_pic, options);
|
viewHolder.tv_price.setTextColor(mContext.getResources().getColor(R.color.red_money));
|
viewHolder.tv_favourable.getPaint().setFlags(0);
|
if (Integer.parseInt(info.getShowType()) == 2) {//红包
|
viewHolder.tv_red_packet1.setVisibility(View.GONE);
|
viewHolder.tv_favourable.setTextColor(mContext.getResources().getColor(R.color.red_money));
|
String disCount = "¥ " + info.getZkPrice();
|
int count = disCount.indexOf(".");
|
Spannable span = new SpannableString(disCount);
|
span.setSpan(new RelativeSizeSpan(1.5f), 2, count <= 0 ? disCount.length() : count, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
// Spannable span = new SpannableString(disCount);
|
// span.setSpan(new RelativeSizeSpan(1.8f), 2, (disCount.length() - 2), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
viewHolder.tv_price.setText(span);
|
// if (info.getTaoBaoHongBaoInfo().getType().equalsIgnoreCase("0")) {
|
// viewHolder.tv_favourable.setText("返利:¥ " + info.getTaoBaoHongBaoInfo().getHongbao());
|
// } else {
|
viewHolder.tv_favourable.setText("最大: " + info.getTaoBaoHongBaoInfo().getHongbao() + "%");
|
// }
|
} else if (Integer.parseInt(info.getShowType()) == 1) {//券
|
viewHolder.tv_favourable.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
|
viewHolder.tv_favourable.setTextColor(mContext.getResources().getColor(R.color.transport_black));
|
viewHolder.tv_red_packet1.setVisibility(View.GONE);
|
String disCount = "券后价:¥ " + info.getQuanPrice();
|
int count = disCount.indexOf(".");
|
Spannable span = new SpannableString(disCount);
|
span.setSpan(new RelativeSizeSpan(1.5f), 6, count <= 0 ? disCount.length() : count, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
viewHolder.tv_price.setText(span);
|
viewHolder.tv_favourable.setText(info.getReservePrice());
|
} else {//红包和券
|
viewHolder.tv_red_packet1.setVisibility(View.VISIBLE);
|
viewHolder.tv_red_packet1.setTextColor(mContext.getResources().getColor(R.color.red_money));
|
viewHolder.tv_favourable.setTextColor(mContext.getResources().getColor(R.color.transport_black));
|
viewHolder.tv_favourable.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);
|
String disCount = "券后价:¥ " + info.getQuanPrice();
|
int count = disCount.indexOf(".");
|
Spannable span = new SpannableString(disCount);
|
span.setSpan(new RelativeSizeSpan(1.5f), 6, count <= 0 ? disCount.length() : count, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
viewHolder.tv_price.setText(span);
|
viewHolder.tv_favourable.setText(info.getReservePrice());
|
// if (info.getTaoBaoHongBaoInfo().getType().equalsIgnoreCase("0")) {
|
// viewHolder.tv_red_packet1.setText("返利:¥ " + info.getTaoBaoHongBaoInfo().getHongbao());
|
// } else {
|
viewHolder.tv_red_packet1.setText("奖金: " + info.getTaoBaoHongBaoInfo().getHongbao());
|
// }
|
}
|
//是否包邮,暂时没有数据
|
// if (info.getShowType().equalsIgnoreCase("1") || info.getShowType().equalsIgnoreCase("3")) {
|
// viewHolder.tv_carriage.setVisibility(View.VISIBLE);
|
// } else {
|
// viewHolder.tv_carriage.setVisibility(View.INVISIBLE);
|
// }
|
|
viewHolder.tv_favourable.getPaint().setAntiAlias(true);
|
viewHolder.tv_sale_num.setText("月销:" + wList.get(position).getSalesCount());
|
viewHolder.ratioLayout.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
// Intent intent = new Intent(mContext, GoodsDetailBrowerActivity.class);
|
Intent intent = new Intent(mContext, GoodsBrowserActivity.class);
|
intent.putExtra("title", wList.get(position).getTitle());
|
intent.putExtra("url", wList.get(position).getAuctionUrl());
|
intent.putExtra("id", wList.get(position).getAuctionId());
|
mContext.startActivity(intent);
|
}
|
});
|
|
viewHolder.cb_edit.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
@Override
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
if (isChecked) {
|
mCBFlag.put(position, true);
|
} else {
|
mCBFlag.put(position, false);
|
}
|
}
|
});
|
|
if (mSelectedMode) {
|
viewHolder.fl_edit.setVisibility(View.VISIBLE);
|
viewHolder.ratioLayout.setClickable(false);
|
viewHolder.cb_edit.setChecked(mCBFlag.get(position));
|
} else {
|
viewHolder.fl_edit.setVisibility(View.GONE);
|
viewHolder.ratioLayout.setClickable(true);
|
}
|
return convertView;
|
}
|
|
private void showImageFace(String s, String shop, TextView tv) {
|
// 创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像
|
SpannableString spannableString = null;
|
VerticalImageSpan imageSpan = null;
|
if (Integer.parseInt(shop) == 1) {//淘宝
|
imageSpan = new VerticalImageSpan(mContext, R.drawable.icon);
|
spannableString = new SpannableString(Html.fromHtml("# " + s));
|
} else if (Integer.parseInt(shop) == 2) {//天猫
|
imageSpan = new VerticalImageSpan(mContext, R.drawable.ic_tmall);
|
spannableString = new SpannableString(Html.fromHtml("# " + s));
|
} else {
|
spannableString = new SpannableString(Html.fromHtml(s));
|
}
|
// 用ImageSpan对象替换字符
|
spannableString.setSpan(imageSpan, 0, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
tv.setText(spannableString);
|
}
|
|
class ViewHolder {
|
TextView tv_name;
|
TextView tv_price;
|
TextView tv_red_packet1;
|
// TextView tv_carriage;
|
TextView tv_favourable;//红包,券后价
|
TextView tv_sale_num;
|
ImageView iv_pic;
|
RatioLayout ratioLayout;
|
FrameLayout fl_edit;
|
CheckBox cb_edit;
|
}
|
|
private boolean mSelectedMode = false;
|
|
public String getSelectedIds() {
|
String str = "";
|
for (int i = 0; i < mCBFlag.size(); i++) {
|
if (mCBFlag.get(i).booleanValue()) {
|
str += wList.get(i).getAuctionId() + ",";
|
}
|
}
|
if (!StringUtils.isEmpty(str))
|
str = str.substring(0, str.length() - 1);
|
return str;
|
}
|
|
List<TaoBaoGoodsBrief> clist = new ArrayList<>();
|
|
public void updateView() {
|
for (int i = 0; i < mCBFlag.size(); i++) {
|
if (mCBFlag.get(i).booleanValue()) {
|
clist.add(wList.get(i));
|
}
|
}
|
for (int i = 0; i < clist.size(); i++) {
|
for (int j = 0; j < wList.size(); j++) {
|
if (clist.get(i).getId().equalsIgnoreCase(wList.get(j).getId())) {
|
wList.remove(clist.get(i));
|
}
|
}
|
}
|
mCBFlag = null;
|
mCBFlag = new HashMap<Integer, Boolean>();
|
init(null);
|
notifyDataSetChanged();
|
}
|
|
public boolean isSelectedMode() {
|
return mSelectedMode;
|
}
|
|
public void setSelectedMode(boolean selectedMode) {
|
this.mSelectedMode = selectedMode;
|
notifyDataSetChanged();
|
}
|
}
|