直播电商源码出售商品倒计时的定时器效果实现的相关源码
在MainActivity中,设置屏幕为横屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
编写布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:orientation="vertical" android:id="@+id/countdown_layout" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" android:text="大学生活还剩:" android:textColor="@color/design_default_color_error" android:textSize="30sp" android:textStyle="bold" android:gravity="center" /> <LinearLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="3" android:orientation="horizontal"> <TextView style="@style/count_down_time" android:background="@color/cardview_shadow_start_color" android:id="@+id/week" android:text="11月" /> <TextView style="@style/count_down_time" android:background="@color/cardview_shadow_start_color" android:id="@+id/day" android:text="00天" /> <TextView style="@style/count_down_time" android:background="@color/cardview_shadow_start_color" android:id="@+id/hour" android:text="01时" /> <TextView style="@style/count_down_time" android:background="@color/cardview_shadow_start_color" android:id="@+id/minute" android:text="07分" /> <TextView style="@style/count_down_time" android:background="@color/cardview_shadow_start_color" android:id="@+id/second" android:text="07秒" /> </LinearLayout> </LinearLayout>
找到控件,可以添加jake大佬的butterknife依赖,在app中的build.gradle依赖中添加两行
implementation 'com.jakewharton:butterknife:10.2.3' annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
实现思路将未来的某个时间,减去当前时间,并格式化成日期,赋值给TextView,运用定时器循环执行,MainActivity的全部代码。
package com.example.schoolcountdown; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.widget.TextView; import com.blankj.utilcode.util.LogUtils; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import androidx.appcompat.app.AppCompatActivity; import butterknife.BindView; import butterknife.ButterKnife; public class MainActivity extends AppCompatActivity { //绑定对应的控件 @BindView(R.id.week) TextView mWeek; @BindView(R.id.day) TextView mDay; @BindView(R.id.hour) TextView mHour; @BindView(R.id.minute) TextView mMinute; @BindView(R.id.second) TextView mSecond; private long targetTime; private Calendar calendar; private long currentTime; private long timeLeft; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE设置为横屏 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //绑定黄油刀的依赖 ButterKnife.bind(this); //============================================ //获取目标时间 //测试定时器 timerRun(0,1); } private void getTargetTime() { //java.util.Calendar calendar = Calendar.getInstance(); calendar.clear(); calendar.set(2022,5,24,12,0,0); targetTime = calendar.getTimeInMillis(); } private void timerRun(long delay,long period) { Runnable runable = new Runnable(){ public void run() { setAllText(); } }; ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor(); service.scheduleAtFixedRate(runable, delay, period, TimeUnit.SECONDS); } private void setAllText() { getTargetTime(); //yyyy-MM-dd hh:mm:ss currentTime = System.currentTimeMillis(); timeLeft = targetTime - currentTime; Date date = new Date(timeLeft); /*LogUtils.d(targetTime + "------->" + currentTime + "=======" + timeLeft); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("y-MM-dd hh:mm:ss"); String format = simpleDateFormat.format(date); LogUtils.d("时间为" + format);*/ DateFormat formatter1 = new SimpleDateFormat("MM"); setTime(formatter1,date); SimpleDateFormat dd = new SimpleDateFormat("dd"); setTime1(dd,date); SimpleDateFormat hh = new SimpleDateFormat("hh"); setTime2(hh,date); SimpleDateFormat mm = new SimpleDateFormat("mm"); setTime3(mm,date); SimpleDateFormat ss = new SimpleDateFormat("ss"); setTime4(ss,date); } private void setTime4(SimpleDateFormat ss, Date date) { String format = ss.format(date); mSecond.setText(format + "秒"); } private void setTime3(SimpleDateFormat mm, Date date) { String format = mm.format(date); mMinute.setText(format + "分钟"); } private void setTime2(SimpleDateFormat hh, Date date) { String format = hh.format(date); mHour.setText(format + "小时"); } private void setTime1(SimpleDateFormat dd, Date date) { String format = dd.format(date); mDay.setText(format + "天"); } private void setTime(DateFormat formatter1, Date date) { String format = formatter1.format(date); mWeek.setText(format + "月 "); } }
以上就是 直播电商源码,商品出售倒计时的定时器效果实现的相关代码,更多内容欢迎关注之后的文章
1.本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2.分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3.不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4.本站提供的源码、模板、插件等其他资源,都不包含技术服务请大家谅解!
5.如有链接无法下载或失效,请联系管理员处理!
6.本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
2.分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3.不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4.本站提供的源码、模板、插件等其他资源,都不包含技术服务请大家谅解!
5.如有链接无法下载或失效,请联系管理员处理!
6.本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!