本文实例为大家分享了Android实现淘宝秒杀的具体代码,供大家参考,具体内容如下

目录结构

效果图:

imageViewHolder

public class imageViewHolder extends RecyclerView.ViewHolder {    public ImageView imageView;    public imageViewHolder(View itemView) {     super(itemView);     imageView = (ImageView) itemView;   } } 

MyViewHolder

public class MyViewHolder extends RecyclerView.ViewHolder {    public TextView textView;    public MyViewHolder(View itemView) {     super(itemView);     textView = (TextView) itemView;   } } 

recycleAdapter

package com.nodeprogress.snapupview.SnapUp;  import android.content.Context; import android.graphics.Color; import android.support.v7.widget.RecyclerView; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView;  public class recycleAdapter extends RecyclerView.Adapter {    Context context;    public recycleAdapter(Context context) {     this.context = context;   }     @Override   public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {      if (viewType == 0){       return new imageViewHolder(new ImageView(context));     }else {       return new MyViewHolder(new TextView(context));     }   }    @Override   public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {     if (getItemViewType(position) == 0) {       imageViewHolder viewHolder = (imageViewHolder) holder;       viewHolder.imageView.setPadding(150,20,20,20);       viewHolder.imageView.setBackgroundColor(Color.BLUE);     } else {       MyViewHolder viewHolder = (MyViewHolder) holder;       viewHolder.textView.setText(" 淘宝 " + position);     }   }    @Override   public int getItemCount() {     return 21;   }    @Override   public int getItemViewType(int position) {     return (position == 20) ? 0 : 1;   }  } 

MainActivity

package com.nodeprogress.snapupview;  import android.os.Bundle; import android.support.v7.app.AppCompatActivity;  import com.nodeprogress.snapupview.SnapUp.recycleAdapter; import com.nodeprogress.snapupview.View.HorizontalRecycleViewLoadMore;   public class MainActivity extends AppCompatActivity {    @Override   protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_main);      HorizontalRecycleViewLoadMore recyclerView = (HorizontalRecycleViewLoadMore) findViewById(R.id.recycle);     recyclerView.setAdapter(new recycleAdapter(MainActivity.this));      SnapUpCountDownTimerView rushBuyCountDownTimerView = (SnapUpCountDownTimerView) findViewById(R.id.RushBuyCountDownTimerView);     rushBuyCountDownTimerView.setTime(1,55,3);     rushBuyCountDownTimerView.start();   } } 

SnapUpCountDownTimerView

package com.nodeprogress.snapupview;  import android.annotation.SuppressLint; import android.content.Context; import android.content.res.TypedArray; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast;  import java.util.Timer; import java.util.TimerTask;  @SuppressLint("HandlerLeak") public class SnapUpCountDownTimerView extends LinearLayout {    private TextView tv_hour_decade;   private TextView tv_hour_unit;   private TextView tv_min_decade;   private TextView tv_min_unit;   private TextView tv_sec_decade;   private TextView tv_sec_unit;    private Context context;    private int hour_decade;   private int hour_unit;   private int min_decade;   private int min_unit;   private int sec_decade;   private int sec_unit;    private Timer timer;    private Handler handler = new Handler() {      public void handleMessage(Message msg) {       countDown();     }   };    public SnapUpCountDownTimerView(Context context, AttributeSet attrs) {     super(context, attrs);      this.context = context;     LayoutInflater inflater = (LayoutInflater) context         .getSystemService(Context.LAYOUT_INFLATER_SERVICE);     View view = inflater.inflate(R.layout.view_countdowntimer, this);      tv_hour_decade = (TextView) view.findViewById(R.id.tv_hour_decade);     tv_hour_unit = (TextView) view.findViewById(R.id.tv_hour_unit);     tv_min_decade = (TextView) view.findViewById(R.id.tv_min_decade);     tv_min_unit = (TextView) view.findViewById(R.id.tv_min_unit);     tv_sec_decade = (TextView) view.findViewById(R.id.tv_sec_decade);     tv_sec_unit = (TextView) view.findViewById(R.id.tv_sec_unit);      TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.SnapUpCountDownTimerView);     int size = array.getInteger(R.styleable.SnapUpCountDownTimerView_viewSize, 12);       tv_hour_decade.setTextSize(size);     tv_hour_unit.setTextSize(size);     tv_min_decade.setTextSize(size);     tv_min_unit.setTextSize(size);     tv_sec_decade.setTextSize(size);     tv_sec_unit.setTextSize(size);     ((TextView)view.findViewById(R.id.colon_minute)).setTextSize(size);     ((TextView)view.findViewById(R.id.colon_hour)).setTextSize(size);   }     public void start() {     if (timer == null) {       timer = new Timer();       timer.schedule(new TimerTask() {         @Override         public void run() {           handler.sendEmptyMessage(0);         }       }, 0, 1000);     }   }     public void stop() {     if (timer != null) {       timer.cancel();       timer = null;     }   }     public void setTime(int hour, int min, int sec) {      if (hour >= 60 || min >= 60 || sec >= 60 || hour < 0 || min < 0         || sec < 0) {       throw new RuntimeException("时间格式错误,请检查你的代码");     }      hour_decade = hour / 10;     hour_unit = hour - hour_decade * 10;      min_decade = min / 10;     min_unit = min - min_decade * 10;      sec_decade = sec / 10;     sec_unit = sec - sec_decade * 10;      tv_hour_decade.setText(hour_decade + "");     tv_hour_unit.setText(hour_unit + "");     tv_min_decade.setText(min_decade + "");     tv_min_unit.setText(min_unit + "");     tv_sec_decade.setText(sec_decade + "");     tv_sec_unit.setText(sec_unit + "");   }     private void countDown() {     if (isCarry4Unit(tv_sec_unit)) {       if (isCarry4Decade(tv_sec_decade)) {         if (isCarry4Unit(tv_min_unit)) {           if (isCarry4Decade(tv_min_decade)) {             if (isCarry4Unit(tv_hour_unit)) {               if (isCarry4Decade(tv_hour_decade)) {                 Toast.makeText(context, "计数完成",                     Toast.LENGTH_SHORT).show();                 stop();                 setTime(0, 0, 0);//重置为0               }             }           }         }       }     }   }     private boolean isCarry4Decade(TextView tv) {      int time = Integer.valueOf(tv.getText().toString());     time = time - 1;     if (time < 0) {       time = 5;       tv.setText(time + "");       return true;     } else {       tv.setText(time + "");       return false;     }   }     private boolean isCarry4Unit(TextView tv) {      int time = Integer.valueOf(tv.getText().toString());     time = time - 1;     if (time < 0) {       time = 9;       tv.setText(time + "");       return true;     } else {       tv.setText(time + "");       return false;     }   } } 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>        

home_snap_up.xml

<?xml version="1.0" encoding="utf-8"?>                                             

view_countdowntimer.xml

<?xml version="1.0" encoding="utf-8"?>                                                                        

代码全部贴出来了。

Android 定时器+倒计时 CountDownTimer实现

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多相关文章

  1. centos7中安装Android(安卓)SDK的方法步骤
  2. 设置屏幕默认横屏
  3. 超级简单的Google VR SDK播放VR视频
  4. 使用MAT查看Android内存泄露
  5. Android(安卓)ActivityGroup和TabActiviy的差异性
  6. Android手机客户端通过JSP实现与Tomcat服务器端通信(Msql数据库,Js
  7. Android中关于空指针异常的解决办法
  8. android各种界面跳转(调用系统联系人,通话记录,发短信,发邮件,google
  9. android拨打电话崩溃6.0以上实时动态权限申请

随机推荐

  1. android 游戏:俄罗斯方块的小结和开发过程
  2. Serializable 都这么牛逼了,Parcelable 还
  3. Android接电话流程,JAVA部分
  4. 图片、缓存-Android仿人人客户端(v5.7.1)—
  5. 自定义view的基本步骤和思路...
  6. android voip你选哪一个 SipDroid,IMSDro
  7. 看google是怎样在Android(安卓)Market上
  8. 项目总结之Android读取office文件遇到的
  9. android阅读App、MVP基于高德地图开发、
  10. Android构建音频播放器教程(一)