导航:首页 > 操作系统 > android动画倒计时

android动画倒计时

发布时间:2022-07-09 14:54:14

‘壹’ android studio怎么做倒计时钟

在代码左侧的灰色条上点一下,整行代码变红了就是设置上断点了 点绿三角右边带刺的e才是调试模式,绿三角只是运行不能调试

‘贰’ android中怎样设置倒计时

你好,
首先需要在输入框中输入一个秒数,比如:12,然后获取输入框中的值,显示在一个TextView中;点击“开始倒计时”按钮,每隔一秒钟,秒数减1,然后显示在TextView中;点击“停止倒计时”按钮,计时器停止运行,当再次点击“开始倒计时”按钮,计时器继续运行。

‘叁’ android studio怎么实现倒计时

以自动实现KeyEvent.Callback接口为例子启动AndroidStudio,打开demo工程增加实现KeyEvent.Callback的类使用Alt+Enter快捷键把光标定位到接口名按Alt+Enter,并点击"Implementmethods"菜单项在弹出的“SelectMethodstoImplement”对话框中,点击OK按钮这样就可以实现所有的接口函数了。使用菜单实现接口方法把光标定位到接口名,执行菜单“Code”-“ImplementMethods”在弹出的“SelectMethodstoImplement”对话框中,点击OK按钮这样就可以实现所有的接口函数了

‘肆’ Android倒计时怎么实现

安卓实现同时多个倒计时效果的步骤:
我们首先需要在输入框中输入一个秒数,比如:12,然后获取输入框中的值,显示在一个TextView中;
点击“开始倒计时”按钮,每隔一秒钟,秒数减1,然后显示在TextView中;
点击“停止倒计时”按钮,计时器停止运行,当再次点击“开始倒计时”按钮,计时器继续运行。
平时用的每个商品都应该有两个属性值,这里叫它deadLine和isOvere吧,表示商品的到期时间和是否到期,那么倒计时可以考虑这么实现:设置一个主计时器,每隔1秒发出消息告诉GridView现在的时间,GridView的Item获得这个时间之后就和deadLine比较,如果已经到deadline了,就把数据源中的这项标记成已到期(修改isOvere的值为true);没到deadline,就计算还差多少时间,显示到GridView的Item里。

‘伍’ android 倒计时器 设计

有三种实现方式:

第一种:通过Timer与TimerTask结合的方式进行实现
第二种:通过Handler与Message方式进行实现
第三种:通过CountdownTimer进行实现
示例
第一种:
timer.schele(task, 1000, 1000); // timeTask ,一秒执行一次,
TimerTask task = new TimerTask() {
@Override
public void run() {
}
}
第二种:
handler.sendMessageDelayed(message, 1000); //1秒后发送消息
final Handler handler = new Handler(){
public void handleMessage(Message msg){ // handle message
switch (msg.what) {
case 1:
recLen--;
if(recLen > 0){ //如果倒计时没到
Message message = handler.obtainMessage(1);
handler.sendMessageDelayed(message, 1000); // 1秒后发送消息
}
}
super.handleMessage(msg);
}
};
第三种:
new CountdownTimer(30000, 1000) { //30秒倒计时,没秒执行一次
public void onTick(long millisUntilFinished) { //每秒执行一次进该方法
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() { //倒计时结束。
mTextField.setText("done!");
}
}.start();

‘陆’ 安卓手机倒计时软件,可以在安卓桌面显示的(就像安卓的窗口小部件一样)

手机暂时不能将倒计时添加至锁屏或桌面上显示,但是可以在手机日历中设置,首先打开手机日历,然后点击“+”新建日程,做好文字备注后,点击最右侧倒计时标签,然后设置开始、结束的提醒时间,就完成倒计时设置。

‘柒’ android中怎么实现倒计时怎么按照小时分钟

Android实现计时与倒计时的五种方法:

方法一
Handler与Message(不用TimerTask)

public class timerTask extends Activity{
private int recLen = 11;
private TextView txtView;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.timertask);
txtView = (TextView)findViewById(R.id.txttime);

Message message = handler.obtainMessage(1); // Message
handler.sendMessageDelayed(message, 1000);
}

final Handler handler = new Handler(){

public void handleMessage(Message msg){ // handle message
switch (msg.what) {
case 1:
recLen--;
txtView.setText("" + recLen);

if(recLen > 0){
Message message = handler.obtainMessage(1);
handler.sendMessageDelayed(message, 1000); // send message
}else{
txtView.setVisibility(View.GONE);
}
}

super.handleMessage(msg);
}
};
}
linux

方法二
Handler与Thread(不占用UI线程)

public class timerTask extends Activity{
private int recLen = 0;
private TextView txtView;

public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);

setContentView(R.layout.timertask);
txtView = (TextView)findViewById(R.id.txttime);

new Thread(new MyThread()).start(); // start thread
}

final Handler handler = new Handler(){ // handle
public void handleMessage(Message msg){
switch (msg.what) {
case 1:
recLen++;
txtView.setText("" + recLen);
}
super.handleMessage(msg);
}
};

public class MyThread implements Runnable{ // thread
@Override
public void run(){
while(true){
try{
Thread.sleep(1000); // sleep 1000ms
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}catch (Exception e) {
}
}
}
}
}

方法三
Timer与TimerTask(Java实现)

public class timerTask extends Activity{

private int recLen = 11;
private TextView txtView;
Timer timer = new Timer();

public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);

setContentView(R.layout.timertask);
txtView = (TextView)findViewById(R.id.txttime);

timer.schele(task, 1000, 1000); // timeTask
}

TimerTask task = new TimerTask() {
@Override
public void run() {

runOnUiThread(new Runnable() { // UI thread
@Override
public void run() {
recLen--;
txtView.setText(""+recLen);
if(recLen < 0){
timer.cancel();
txtView.setVisibility(View.GONE);
}
}
});
}
};
}
方法四
TimerTask与Handler(不用Timer的改进型)

public class timerTask extends Activity{
private int recLen = 11;
private TextView txtView;
Timer timer = new Timer();

public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);

setContentView(R.layout.timertask);
txtView = (TextView)findViewById(R.id.txttime);

timer.schele(task, 1000, 1000); // timeTask
}

final Handler handler = new Handler(){
@Override
public void handleMessage(Message msg){
switch (msg.what) {
case 1:
txtView.setText(""+recLen);
if(recLen < 0){
timer.cancel();
txtView.setVisibility(View.GONE);
}
}
}
};

TimerTask task = new TimerTask() {
@Override
public void run() {
recLen--;
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
};
}
方法五
Handler与Runnable(最简单型)

public class timerTask extends Activity{
private int recLen = 0;
private TextView txtView;

public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);

setContentView(R.layout.timertask);
txtView = (TextView)findViewById(R.id.txttime);

handler.postDelayed(runnable, 1000);
}

Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
recLen++;
txtView.setText("" + recLen);
handler.postDelayed(this, 1000);
}
};
}
计时与倒计时

方法1,方法2和方法3,都是倒计时

方法4,方法5,都是计时

计时和倒计时,都可使用上述方法实现(代码稍加改动)

UI线程比较

方法1,方法2和方法3,都是在UI线程实现的计时;

方法4和方法5,是另开Runnable线程实现计时

实现方式比较

方法1,采用的是Java实现,即Timer和TimerTask方式;

其它四种方法,都采用了Handler消息处理

推荐使用

如果对UI线程交互要求不很高,可以选择方法2和方法3

如果考虑到UI线程阻塞,严重影响到用户体验,推荐使用方法4,另起线程单独用于计时和其它的逻辑处理

方法5,综合了前几种方法的优点,是最简的

‘捌’ Android 开发弄一个倒计时的界面

用SurfaceView 做的一个倒计时的界面:
public class CountDownView extends SurfaceView implements Callback, Runnable{
//
private SurfaceHolder sfh;
//画布
private Canvas canvas;
//线程是否开起的标识
private boolean flag;

//背景画笔
Paint backgroundPaintpaint;
//绘制数字的画笔
Paint paintText;
//声明一条线程
private Thread th;
//二级计数器
long timeBox;
//倒计时数字
long time;

public void myDraw()
{
canvas = sfh.lockCanvas();
try {
//二级计数器自加
timeBox++;
if(canvas != null)
{
//绘制背景--全黑
canvas.drawRect(0, 0, this.getWidth(), this.getHeight(), backgroundPaintpaint);
if(timeBox%8 == 0)
{
//50*8 毫秒绘制一个数字
if(time > 0)
{
time--;
}else{time = 9;}

}
canvas.drawText(String.valueOf(time), this.getWidth()/2, this.getHeight()/2+50, paintText);
}
} catch (Exception e) {

}finally
{
sfh.unlockCanvasAndPost(canvas);
}
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
}
public CountDownView(Context context)
{
super(context);
sfh = this.getHolder();
sfh.addCallback(this);
canvas = new Canvas();
time = 9;
//二级计数器
timeBox = 0;
//设置背景常亮
this.setKeepScreenOn(true);
//
}
@Override
public void run()
{
while(flag)
{
long start = System.currentTimeMillis();
myDraw();
long end = System.currentTimeMillis();
try {
if(end - start < 50)
{
Thread.sleep(50 -(end-start));
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
//实例背景画笔
backgroundPaintpaint = new Paint();
//设置背景画笔为黑色
backgroundPaintpaint.setColor(Color.BLACK);
//实例数字画笔
paintText = new Paint();
//设置风格
paintText.setStyle(Paint.Style.STROKE);
//设置居中
paintText.setTextAlign(Paint.Align.CENTER);
//设置着色
paintText.setColor(Color.BLUE);
//设置大小
paintText.setTextSize((float) (38*7.5));

//标识线程开起
flag = true;
//实例线程
th = new Thread(this);
//开起线程
th.start();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
//关闭线程
flag = false;
}
}

程序入口:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//设置全屏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(new CountDownView(this));
}
}

‘玖’ android ListView 每一行实现倒计时的效果

解决了没,用viewholder没用的,viewholder只优化了加载速度

阅读全文

与android动画倒计时相关的资料

热点内容
app窥探隐私到哪里投诉 浏览:713
decimal数据加密 浏览:646
游戏模型加密了如何破解 浏览:309
北京服务器硬盘回收门店云主机 浏览:837
神探狄仁杰5在哪个app可以观看 浏览:697
云南中级程序员实战培训 浏览:674
安卓软件什么平台比较好 浏览:153
linux五笔输入法下载 浏览:923
程序员问题解决方案 浏览:78
数据和app哪个好 浏览:120
大众app怎么显示车去哪里 浏览:274
柱根部的加密区长度怎么算 浏览:847
沈阳人力资源公司外包程序员 浏览:313
陌探app哪个好 浏览:289
法院案件查哪个app 浏览:479
计算器算法问题 浏览:748
右肺被压缩约80 浏览:641
vb编译的语法错误是什么 浏览:841
清华大学编译原理2020 浏览:285
怎么才能获得云服务器 浏览:809