直播電商原始碼,商品出售倒數計時的定時器效果
直播電商原始碼,商品出售倒數計時的定時器效果實現的相關程式碼
在MainActivity中,設定螢幕為橫屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
編寫佈局檔案
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" xmlns: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 + "月 "); } }
以上就是 直播電商原始碼,商品出售倒數計時的定時器效果實現的相關程式碼,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2840795/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 視訊直播系統原始碼,倒數計時顯示,商品秒殺倒數計時原始碼
- 直播系統原始碼,實現倒數計時,定時任務原始碼
- 商品搶購倒數計時效果程式碼例項
- 直播電商原始碼,活動開始時間計時器原始碼
- 線上直播系統原始碼,預設倒數計時,自定義輸入時間倒數計時原始碼
- 直播小程式原始碼,vue實現時間倒數計時原始碼Vue
- setTimeout倒數計時效果程式碼
- jQuery倒數計時效果程式碼例項jQuery
- 直播app原始碼,定時開關,實現計時器功能APP原始碼
- 直播系統app原始碼,自定義可以暫停的倒數計時APP原始碼
- 手機直播原始碼,驗證碼自動讀秒倒數計時原始碼
- 直播商城系統原始碼,js製作倒數計時,天,小時,分,秒原始碼JS
- 直播帶貨app開發,制定商品秒殺倒數計時提示APP
- jQuery 倒數計時效果詳解jQuery
- 直播系統平臺搭建,大屏倒數計時動畫效果動畫
- 直播網站原始碼,Canvas實現圓形時間倒數計時進度條網站原始碼Canvas
- Flutter倒數計時/計時器的實現Flutter
- win10 自帶倒數計時如何設定_win10開啟計時器倒數計時的方法Win10
- js程式碼實現倒數計時秒殺的效果JS
- app直播原始碼,驗證時實現獲取驗證碼並顯示倒數計時的功能APP原始碼
- 按鈕倒數計時可用效果例項程式碼
- js驗證碼重新傳送倒數計時效果JS
- javascript小時、分鐘和秒倒數計時效果JavaScript
- 簡單實現時間倒數計時與伺服器同步效果伺服器
- 原始碼分析:CountDownLatch 之倒數計時門栓原始碼CountDownLatch
- js精確到天的倒數計時效果JS
- 倒數計時結尾使用動畫效果程式碼例項動畫
- 倒數計時然後才可以點選效果程式碼
- Flutter 快速上手定時器/倒數計時及實戰講解Flutter定時器
- 安卓快速開發框架(十)XBaseAndroid倒數計時,定時器安卓框架Android定時器
- 年月日小時分鐘秒倒數計時效果程式碼例項
- jQuery實現的按鈕可用倒數計時效果jQuery
- 直播平臺搭建,計時和倒數計時功能的分別實現
- js自動倒數計時程式碼,倒數計時完畢時自動停止迴圈JS
- js倒數計時 實現傳送驗證碼倒數計時60sJS
- iOS商城類商品搶購倒數計時那點事iOS
- JavaScript倒數計時JavaScript
- js——倒數計時JS