android studio倒计时代码,AndroidStudio项目制作倒计时模块

前言

大家好,给大家带来AndroidStudio项目制作倒计时模块的概述,希望你们喜欢

项目难度

AndroidStudio项目制作倒计时模块的难度,不是很大,就是主要用了Timer和TimerTask这两个,接着就是现实界面的一些基础效果。

设计界面

做个倒计时的界面就比较好想了,就如下界面控件

填写倒计时时间

获取倒计时时间

显示倒计时

开始计时

停止计时

就在自动创建的activity_main.xml中写入代码:

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context="cn.edu.gdmec.android.counttime.MainActivity">

android:id="@+id/input"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:ems="10"/>

android:id="@+id/get"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="获取倒计时时间"/>

android:id="@+id/time"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

/>

android:id="@+id/starttime"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="开始计时"/>

android:id="@+id/stoptime"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="停止计时"/>

实现功能需求

接下来我们需要在MainActivity.java中现实功能模块需求,主要来显示界面和获取按钮功能效果,代码如下:

package cn.edu.gdmec.android.counttime;

import android.os.Handler;

import android.os.Message;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import java.util.Timer;

import java.util.TimerTask;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private EditText inputet;

private Button get, startTime, stopTime;

private TextView time;

private int i = 0;

private Timer timer = null;

private TimerTask task = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

initView();

}

private void initView() {

inputet = findViewById(R.id.input);

get = findViewById(R.id.get);

startTime = findViewById(R.id.starttime);

stopTime = findViewById(R.id.stoptime);

time = findViewById(R.id.time);

get.setOnClickListener(this);

startTime.setOnClickListener(this);

stopTime.setOnClickListener(this);

}

@Override

public void onClick(View v) {

switch (v.getId()) {

case R.id.get:

time.setText(inputet.getText().toString());

i = Integer.parseInt(inputet.getText().toString());

break;

case R.id.starttime:

startTime();

break;

case R.id.stoptime:

stopTime();

break;

default:

break;

}

}

private Handler mHandler = new Handler() {

public void handleMessage(Message msg) {

time.setText(msg.arg1 + "");

startTime();

};

};

public void startTime() {

timer = new Timer();

task = new TimerTask() {

@Override

public void run() {

if (i > 0) { //加入判断不能小于0

i--;

Message message = mHandler.obtainMessage();

message.arg1 = i;

mHandler.sendMessage(message);

}

}

};

timer.schedule(task, 1000);

}

public void stopTime(){

timer.cancel();

}

}

心得重点

//获取的按钮实现:

time.setText(inputet.getText().toString());

i = Integer.parseInt(inputet.getText().toString());

//Handler的加入

private Handler mHandler = new Handler() {

public void handleMessage(Message msg) {

time.setText(msg.arg1 + "");

startTime();

};

};

//倒计时主要核心

public void startTime() {

timer = new Timer();

task = new TimerTask() {

@Override

public void run() {

if (i > 0) { //加入判断不能小于0

i--;

Message message = mHandler.obtainMessage();

message.arg1 = i;

mHandler.sendMessage(message);

}

}

};

timer.schedule(task, 1000);

}

总结

本文讲了AndroidStudio项目制作倒计时模块,如果您还有更好地理解,欢迎沟通

定位:分享 Android&Java知识点,有兴趣可以继续关注

JavaWeb-SpringBoot(抖音)_一、抖音项目制作

JavaWeb-SpringBoot(抖音)_一.抖音项目制作 传送门 JavaWeb-SpringBoot(抖音)_二.服务器间通讯 传送门 JavaWeb-SpringBoot(抖音)_三.抖音项 ...

AndroidStudio项目提交(更新)到github最详细步骤

在使用studio开发的项目过程中有时候我们想将项目发布到github上,以前都是用一种比较麻烦的方式(cmd)进行提交,最近发现studio其实是自带这种功能的,终于可以摆脱命令行了. 因为自己也没 ...

AndroidStudio项目提交(更新)到github最具体步骤

在使用studio开发的项目过程中有时候我们想将项目公布到github上.曾经都是用一种比較麻烦的方式(cmd)进行提交.近期发现studio事实上是自带这样的功能的,最终能够摆脱命令行了. 由于自己 ...

AndroidStudio项目提交到github最详细步骤

在使用studio开发的项目过程中有时候我们想将项目发布到github上,以前都是用一种比较麻烦的方式(cmd)进行提交,最近发现studio其实是自带这种功能的,终于可以摆脱命令行了. 因为自己也没 ...

基于dubbo构建分布式项目与服务模块

关于分布式服务架构的背景和需求可查阅http://dubbo.io/.不同于传统的单工程项目,本文主要学习如何通过maven和dubbo将构建分布项目以及服务模块,下面直接开始. 创建项目以及模块 ...

Go项目结构和模块导入

Go项目结构和模块导入 golang项目结构与其他语言类似,但是仍然有一些需要注意的地方. 项目结构 环境配置 go 命令依赖一个重要的环境变量:$GOPATH,它表示GO项目的路径,如下设置 exp ...

Windows下AndroidStudio 中使用Git(AndroidStudio项目于GitHub关联)

前提条件 : 1. 安装 Git 客户端 下载链接 2. 有 GitHub 账号 (假设你已经有了一些git基础, 如果还一点都不会, 请去找其他加成学习) AndroidStudio项目发布到Git ...

Androidstudio项目分享到Git@OSC托管

Androidstudio项目分享到Git@OSC托管. 一.在OSC创建仓库 例如,创建一个AndroidStudy仓库,创建步骤如下: 输入仓库名称 点击创建按钮,就可以完成仓库的创建,如下图所示 ...

androidstudio项目如何使用git版本回退

使用android studio 编写代码错误,有时可能会需要将项目版本回退到以前的某个版本上,这对于很多刚使用git的网友来说操作可能不是很懂,下面为大家整理了android studio 回退已经 ...

随机推荐

git推送本地分支到远程分支

场景 有时候我们开发需要开一个分支,这样可以有效的并行开发. 开分支有两种方式: 一种是在远程开好分支,本地直接拉下来; 一种是本地开好分支,推送到远程. 远程先开好分支然后拉到本地 git chec ...

IOS“多继承”

转自念茜的博客: 当单继承不够用,很难为问题域建模时,我们通常都会直接想到多继承.多继承是从多余一个直接基类派生类的能力,可以更加直接地为应用程序建模.但是Objective-C不支持多继承,由于消息 ...

内核调试打印dump_stack

https://blog.csdn.net/dragon101788/article/details/9419175 在函数中加入dump_stack函数 需要包含的头文件: #include &lt ...

numpy数组扩展函数repeat和tile用法

numpy.repeat(a, repeats, axis=None) >>> a = np.arange(3) >>> a array([0, 1, 2]) &g ...

Thread.join方法的解析(转)

原文链接:https://www.cnblogs.com/huangzejun/p/7908898.html 1. join() 的示例和作用 1.1 示例 1 // 父线程 2 public cla ...

MySQL 支持utf8mb4

utf8mb4 utf8mb3 utf8 Refer to The utf8mb4 Character Set The utf8 Character Set (Alias for utf8mb3) M ...

无法ping通自身

今日,ping localhost 超时,ping 127.0.0.1 显示一般故障.无法访问自己电脑上的tomcat.... 居然,居然是防火墙打开了,关了就好了.我勒个去!!!!

python变量、引用、拷贝之间的关系

Python中一切皆为对象,不管是集合变量还是数值型or字符串型的变量都是一个引用,都指向对应内存空间中的对象. 简而言之: 变量直接赋值:新变量本身及其内部的元素都与原变量指向相同的内存空间,并且值 ...

如何简单解释 MapReduce算法

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是在Android Studio中实现启动页倒计时的步骤: 1. 在res/layout文件夹下创建一个新的布局文件,例如activity_splash.xml,用于显示启动页的UI界面。 2. 在activity_splash.xml中添加一个TextView用于显示倒计时的数字。 3. 在res/values文件夹下创建一个新的xml文件,例如strings.xml,用于存储字符串资源。 4. 在strings.xml中添加一个字符串资源,例如: ```xml <string name="countdown_text">跳过 %d</string> ``` 5. 在res/drawable文件夹下添加一个倒计时按钮的图片,例如ic_countdown_button.png。 6. 在activity_splash.xml中添加一个ImageView用于显示倒计时按钮的图片。 7. 在res/drawable文件夹下添加一个倒计时按钮的selector,例如countdown_button_selector.xml,用于设置倒计时按钮的不同状态。 8. 在countdown_button_selector.xml中添加以下代码: ```xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_countdown_button_pressed" android:state_pressed="true"/> <item android:drawable="@drawable/ic_countdown_button_normal"/> </selector> ``` 9. 在activity_splash.xml中设置倒计时按钮的背景为countdown_button_selector.xml。 10. 在res/layout文件夹下创建一个新的布局文件,例如fragment_countdown.xml,用于显示倒计时页面的UI界面。 11. 在fragment_countdown.xml中添加一个TextView用于显示倒计时的数字。 12. 在res/layout文件夹下创建一个新的布局文件,例如fragment_countdown_button.xml,用于显示倒计时按钮的UI界面。 13. 在fragment_countdown_button.xml中添加一个Button用于显示倒计时按钮的文字。 14. 在CountDownFragment.java中实现倒计时的逻辑,例如: ```java public class CountDownFragment extends Fragment { private TextView mCountdownTextView; private Button mCountdownButton; private CountDownTimer mCountdownTimer; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_countdown, container, false); mCountdownTextView = (TextView) view.findViewById(R.id.countdown_text_view); mCountdownButton = (Button) view.findViewById(R.id.countdown_button); mCountdownButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 跳转到主页面 } }); mCountdownTimer = new CountDownTimer(5000, 1000) { @Override public void onTick(long millisUntilFinished) { int seconds = (int) (millisUntilFinished / 1000); String countdownText = getString(R.string.countdown_text, seconds); mCountdownTextView.setText(countdownText); } @Override public void onFinish() { // 倒计时结束,跳转到主页面 } }; mCountdownTimer.start(); return view; } @Override public void onDestroyView() { super.onDestroyView(); mCountdownTimer.cancel(); } } ``` 15. 在SplashActivity.java中添加以下代码,用于启动倒计时页面: ```java public class SplashActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.fragment_container, new CountDownFragment()); fragmentTransaction.commit(); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值