前言
实现效果
源码地址
https://github.com/littlecurl/AppProjects
进去找AndroidCountDown或者AndroidCountDown.zip进行下载
前提条件
【红黑联盟】《Android性能优化之Splash页应该这样设计》 主要讲了启动页优化,要把Activity变成Fragment
【深夜网】《App启动页和引导页注意事项》 主要讲了心理学中的七秒理论
【CSDN】《Android CountDownTimer 倒计时器的简单使用》 注意将了避免内存泄漏
正文
本来想直接写出优化后的效果,也就是直接用Fragment来写,但是那样对于第一次接触的人来说,学习曲线过于陡峭,所以我还是花点时间写两份吧,先写一份Activity的,再写一封优化后的Fragment的。
CountDownActivity
制作倒计时页面流程
-
new一个新坑,在对应包下创建一个EmptyActivity,起名为CountDownActivity
-
修改AndroidManifest.xml文件中启动页为CountDownActivity
3. 设置布局activity_count_down.xml,主布局设置背景图片,这里我还是沿用上次的写bug图,布局内只放一个TextView控件即可,内容如下
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bug"
tools:context=".CountDownActivity">
<!-- android:gravity="center" 使文字在background内居中 -->
<TextView
android:id="@+id/tv_count_down"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:background="@drawable/bg_circle_countdown"
android:gravity="center"
android:text="跳过"
android:textColor="#2c2c2c"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
</androidx.constraintlayout.widget.ConstraintLayout>
注意TextView也有background,这个background是一个xml文件,放在了drawable目录下(话说自己动手用xml画一个圆形,我还是头一次见)
<?xml version="1.0" encoding="utf-8"?>
<!-- 定义一个半径为50dp的圆形 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="#64ffffff" />
<size
android:width="50dp"
android:height="50dp" />
</shape>
-
布局设置完毕,就该写CountDownActivity了,内容如下
package cn.edu.heuet.androidcountdown; import androidx.appcompat.app.AppCompatActivity; import android.