直播电商源码,商品出售倒计时的定时器效果

直播电商源码,商品出售倒计时的定时器效果实现的相关代码

在MainActivity中,设置屏幕为横屏

1
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

编写布局文件

 

1
<?xml version="1.0" encoding="utf-8"?><br><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"<br>    xmlns:tools="http://schemas.android.com/tools"<br>    android:layout_width="match_parent"<br>    android:orientation="vertical"<br>    android:id="@+id/countdown_layout"<br>    android:layout_height="match_parent"<br>    tools:context=".MainActivity"><br>    <TextView<br>        android:layout_width="match_parent"<br>        android:layout_height="0dp"<br>        android:layout_weight="2"<br>        android:text="大学生活还剩:"<br>        android:textColor="@color/design_default_color_error"<br>        android:textSize="30sp"<br>        android:textStyle="bold"<br>        android:gravity="center"<br>        /><br>    <LinearLayout<br>        android:layout_width="match_parent"<br>        android:layout_height="0dp"<br>        android:layout_weight="3"<br>        android:orientation="horizontal"><br>        <TextView<br>            style="@style/count_down_time"<br>            android:background="@color/cardview_shadow_start_color"<br>            android:id="@+id/week"<br>            android:text="11月"<br>            /><br>        <TextView<br>            style="@style/count_down_time"<br>            android:background="@color/cardview_shadow_start_color"<br>            android:id="@+id/day"<br>            android:text="00天"<br>            /><br>        <TextView<br>            style="@style/count_down_time"<br>            android:background="@color/cardview_shadow_start_color"<br>            android:id="@+id/hour"<br>            android:text="01时"<br>            /><br>        <TextView<br>            style="@style/count_down_time"<br>            android:background="@color/cardview_shadow_start_color"<br>            android:id="@+id/minute"<br>            android:text="07分"<br>            /><br>        <TextView<br>            style="@style/count_down_time"<br>            android:background="@color/cardview_shadow_start_color"<br>            android:id="@+id/second"<br>            android:text="07秒"<br>            /><br>    </LinearLayout><br></LinearLayout>

 

 

找到控件,可以添加jake大佬的butterknife依赖,在app中的build.gradle依赖中添加两行

 

1
implementation 'com.jakewharton:butterknife:10.2.3'<br>annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'

 

实现思路将未来的某个时间,减去当前时间,并格式化成日期,赋值给TextView,运用定时器循环执行,MainActivity的全部代码。

 

1
package com.example.schoolcountdown;<br>import android.content.pm.ActivityInfo;<br>import android.os.Bundle;<br>import android.widget.TextView;<br>import com.blankj.utilcode.util.LogUtils;<br>import java.text.DateFormat;<br>import java.text.SimpleDateFormat;<br>import java.util.Calendar;<br>import java.util.Date;<br>import java.util.concurrent.Executors;<br>import java.util.concurrent.ScheduledExecutorService;<br>import java.util.concurrent.TimeUnit;<br>import androidx.appcompat.app.AppCompatActivity;<br>import butterknife.BindView;<br>import butterknife.ButterKnife;<br>public class MainActivity extends AppCompatActivity {<br>    //绑定对应的控件<br>    @BindView(R.id.week)<br>    TextView mWeek;<br>    @BindView(R.id.day)<br>    TextView mDay;<br>    @BindView(R.id.hour)<br>    TextView mHour;<br>    @BindView(R.id.minute)<br>    TextView mMinute;<br>    @BindView(R.id.second)<br>    TextView mSecond;<br>    private long targetTime;<br>    private Calendar calendar;<br>    private long currentTime;<br>    private long timeLeft;<br>    @Override<br>    protected void onCreate(Bundle savedInstanceState) {<br>        super.onCreate(savedInstanceState);<br>        setContentView(R.layout.activity_main);<br>        //ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE设置为横屏<br>        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);<br>        //绑定黄油刀的依赖<br>        ButterKnife.bind(this);<br>        //============================================<br>        //获取目标时间<br>        //测试定时器<br>        timerRun(0,1);<br>    }<br>    private void getTargetTime() {<br>        //java.util.Calendar<br>        calendar = Calendar.getInstance();<br>        calendar.clear();<br>        calendar.set(2022,5,24,12,0,0);<br>        targetTime = calendar.getTimeInMillis();<br>    }<br>    private void timerRun(long delay,long period) {<br>        Runnable runable = new Runnable(){<br>            public void run() {<br>                setAllText();<br>            }<br>        };<br>        ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();<br>        service.scheduleAtFixedRate(runable, delay, period, TimeUnit.SECONDS);<br>    }<br>    private void setAllText() {<br>        getTargetTime();<br>        //yyyy-MM-dd hh:mm:ss<br>        currentTime = System.currentTimeMillis();<br>        timeLeft = targetTime - currentTime;<br>        Date date = new Date(timeLeft);<br>        /*LogUtils.d(targetTime + "------->" + currentTime + "=======" + timeLeft);<br>        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("y-MM-dd hh:mm:ss");<br>        String format = simpleDateFormat.format(date);<br>        LogUtils.d("时间为" + format);*/<br>        DateFormat formatter1 = new SimpleDateFormat("MM");<br>        setTime(formatter1,date);<br>        SimpleDateFormat dd = new SimpleDateFormat("dd");<br>        setTime1(dd,date);<br>        SimpleDateFormat hh = new SimpleDateFormat("hh");<br>        setTime2(hh,date);<br>        SimpleDateFormat mm = new SimpleDateFormat("mm");<br>        setTime3(mm,date);<br>        SimpleDateFormat ss = new SimpleDateFormat("ss");<br>        setTime4(ss,date);<br>    }<br>    private void setTime4(SimpleDateFormat ss, Date date) {<br>        String format = ss.format(date);<br>        mSecond.setText(format + "秒");<br>    }<br>    private void setTime3(SimpleDateFormat mm, Date date) {<br>        String format = mm.format(date);<br>        mMinute.setText(format + "分钟");<br>    }<br>    private void setTime2(SimpleDateFormat hh, Date date) {<br>        String format = hh.format(date);<br>        mHour.setText(format + "小时");<br>    }<br>    private void setTime1(SimpleDateFormat dd, Date date) {<br>        String format = dd.format(date);<br>        mDay.setText(format + "天");<br>    }<br>    private void setTime(DateFormat formatter1, Date date) {<br>        String format = formatter1.format(date);<br>        mWeek.setText(format + "月 ");<br>    }<br>}

 

以上就是 直播电商源码,商品出售倒计时的定时器效果实现的相关代码,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(78)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示