安卓数字倒数控件_android自定义倒计时控件示例

import java.text.DecimalFormat;

import java.util.List;

import android.content.Context;

import android.graphics.Paint;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.LinearLayout;

import android.widget.TextView;

import com.new0315.R;

import com.new0315.entity.SpecialGoods;

import com.new0315.utils.CorrectSpecialDataFormHttp;

import com.new0315.utils.DateTools;

import com.new0315.widgets.TimeTextView;

import com.nostra13.universalimageloader.core.ImageLoader;

public class SpecialGoodsAdapter extends BaseAdapter {

private Context context;

private List list;

private long sumTime;

public SpecialGoodsAdapter(Context context) {

this.context = context;

}

public void setList(List list) {

this.list = list;

}

@Override

public int getCount() {

// TODO Auto-generated method stub

return list.size();

}

@Override

public Object getItem(int arg0) {

// TODO Auto-generated method stub

return null;

}

@Override

public long getItemId(int arg0) {

// TODO Auto-generated method stub

return 0;

}

@Override

public View getView(int arg0, View convertView, ViewGroup arg2) {

//开始计时,性能测试用nanoTime会更精确,因为它是纳秒级的

long startTime = System.nanoTime();

Log.d("position","getView " + arg0 + " " + convertView);

ViewHolder viewHolder;

if(convertView == null)

{

convertView = LayoutInflater.from(context).inflate(

R.layout.item_temai_list, null);

viewHolder = new ViewHolder();

viewHolder.goodName = (TextView) convertView

.findViewById(R.id.temai_Name);

viewHolder.price = (TextView) convertView

.findViewById(R.id.temai_yuanjia_text);

viewHolder.specialPrice = (TextView) convertView

.findViewById(R.id.temai_xiajia_text);

//特卖倒计时控件

viewHolder.mTimeText = (TimeTextView) convertView

.findViewById(R.id.temai_timeTextView);

viewHolder.showDate = (TextView) convertView

.findViewById(R.id.index_temai_day);

viewHolder.showDate_l = (LinearLayout) convertView

.findViewById(R.id.temai_weikaishi);

viewHolder.showTime = (LinearLayout) convertView

.findViewById(R.id.temai_yikaishi);

viewHolder.koukou = (TextView) convertView

.findViewById(R.id.temai_zhekou_text);

viewHolder.image = (ImageView) convertView

.findViewById(R.id.index_temai_image);

Log.d("GoogleIO","new position:"+viewHolder.goodName.getText());

convertView.setTag(viewHolder);

}else {

viewHolder = (ViewHolder) convertView.getTag();

resetViewHolder(viewHolder);

}

//setData

String off = getOff(list.get(arg0).getGoods_Price(), list.get(arg0)

.getGoods_SpecialPrice());

viewHolder.goodName.setText(list.get(arg0).getGoods_Name());

viewHolder.price.setText(list.get(arg0).getGoods_Price());

viewHolder.price.getPaint().setFlags(

Paint.STRIKE_THRU_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);

viewHolder.specialPrice.setText(list.get(arg0).getGoods_SpecialPrice());

viewHolder.koukou.setText(off + "折");

if (DateTools.isStart(list.get(arg0).getSpecialFrom())) {

//特卖倒计时开始

viewHolder.mTimeText.setTimes(DateTools.getDate(CorrectSpecialDataFormHttp

.correctData((list.get(arg0).getSpecialEnd()))));

//已经在倒计时的时候不再开启计时

if(!viewHolder.mTimeText.isRun())

{

viewHolder.mTimeText.run();

}

viewHolder.showDate_l.setVisibility(View.GONE);

viewHolder.showTime.setVisibility(View.VISIBLE);

} else {

viewHolder.showTime.setVisibility(View.GONE);

viewHolder.showDate_l.setVisibility(View.VISIBLE);

viewHolder.showDate.setText(DateTools.getDay(list.get(arg0).getSpecialFrom())

+ "");

}

ImageLoader.getInstance().displayImage(list.get(arg0).getGoods_Pic(),viewHolder.image);

//停止计时

long endTime = System.nanoTime();

//耗时

long spendTime = (endTime - startTime);

sumTime += spendTime;

//        Log.d("GoogleIO", "position at:"+arg0+"--sumTime:"+String.valueOf(sumTime));

return convertView;

}

public String getOff(String price, String specialPrice) {

double off = Double.parseDouble(specialPrice)

/ Double.parseDouble(price) * 10;

DecimalFormat df = new DecimalFormat("0.0");

String off_String = df.format(off);

if (off_String.equals("NaN") || off_String.equals("1")) {

off_String = "10";

}

return off_String;

}

static class ViewHolder {

ImageView image;

TextView goodName;

TextView price;

TextView specialPrice;

TextView koukou;

TimeTextView mTimeText;

TextView showDate;

LinearLayout showDate_l;

LinearLayout showTime;

}

protected void resetViewHolder(ViewHolder viewHolder) {

viewHolder.image.setImageBitmap(null);

viewHolder.goodName.setText("");

viewHolder.price.setText("");

viewHolder.specialPrice.setText("");

viewHolder.koukou.setText("");

viewHolder.mTimeText.setText("");

viewHolder.showDate.setText("");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值