展会信息港展会大全

android倒计时效果 android开发特效
来源:互联网   发布日期:2016-01-19 12:12:03   浏览:2719次  

导读: 1、Activity import java util Timer; import java util TimerTask; import android annotation SuppressLint; import android app Activity; import android os Bundle; import an ...

1、Activity

import java.util.Timer;

import java.util.TimerTask;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.animation.Animation;

import android.view.animation.RotateAnimation;

import android.widget.Button;

import android.widget.ImageView;

import android.widget.TextView;

public class Test extends Activity {

private long mlCount = 50;

private long mCount = 0;

TextView tvTime;

private Button startbuttondaoji;

private Timer timer = null;

private TimerTask task = null;

private Handler handler = null;

private Message msg = null;

private ImageView min_progress, min_progress_hand;

Animation rotateAnimation;

float predegree = 0;

boolean okclear = false;

@SuppressLint("HandlerLeak")

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

init();

}

private void init() {

setContentView(R.layout.test);

tvTime = (TextView) findViewById(R.id.duocitvTime);

startbuttondaoji = (Button) findViewById(R.id.startbuttonduoci);

min_progress = (ImageView) this.findViewById(R.id.duocimin_progress);

min_progress_hand = (ImageView) this

.findViewById(R.id.duocimin_progress_hand);

tvTime.setText("4");

SaveRun.setisjishi(false);

handler = new Handler() {

@Override

public void handleMessage(Message msg) {

switch (msg.what) {

case 1:

if(mlCount>1){

mlCount--;

mCount++;

}else{

break;

}

int totalSec = 0;

totalSec = (int) (mlCount / 10);

int sec = (totalSec % 60);

try {

rotateAnimation = new RotateAnimation(predegree,

(float) (36 * mCount),

Animation.RELATIVE_TO_SELF, 0.5f,

Animation.RELATIVE_TO_SELF, 0.5f);

rotateAnimation.setDuration(100);

rotateAnimation.setFillAfter(false);

min_progress_hand.startAnimation(rotateAnimation);

min_progress.startAnimation(rotateAnimation);

tvTime.setText(String.format("%1$2d",

sec));

predegree = (float) (36 * mCount);

} catch (Exception e) {

tvTime.setText( sec +"");

e.printStackTrace();

}

break;

default:

break;

}

super.handleMessage(msg);

}

};

}

@Override

protected void onStart() {

star();

super.onStart();

}

private void star() {

startbuttondaoji.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

startbuttondaoji.setVisibility(View.GONE);

if (null == timer) {

if (null == task) {

SaveRun.setisjishi(true);

okclear = false;

min_progress.setVisibility(View.VISIBLE);

task = new TimerTask() {

@Override

public void run() {

if (null == msg) {

msg = new Message();

} else {

msg = Message.obtain();

}

msg.what = 1;

handler.sendMessage(msg);

}

};

}

timer = new Timer(true);

timer.schedule(task, 100, 100);

}

}

});

}

View.OnClickListener startPauseListener = new View.OnClickListener() {

@Override

public void onClick(View v) {

if (null == timer) {

if (null == task) {

SaveRun.setisjishi(true);

okclear = false;

min_progress.setVisibility(View.VISIBLE);

task = new TimerTask() {

@Override

public void run() {

if (null == msg) {

msg = new Message();

} else {

msg = Message.obtain();

}

msg.what = 1;

handler.sendMessage(msg);

}

};

}

timer = new Timer(true);

timer.schedule(task, 100, 100);

} else {

try {

SaveRun.setisjishi(false);

okclear = true;

task.cancel();

task = null;

timer.cancel();

timer.purge();

timer = null;

handler.removeMessages(msg.what);

} catch (Exception e) {

e.printStackTrace();

}

}

}

};

}

2、布局文件

<RelativeLayout 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:background="@android:color/background_dark" >

<RelativeLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_above="@+id/buttonlinear" >

<ImageView

android:id="@+id/duocimin_dial"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:src="@drawable/iv_bg" />

<ImageView

android:id="@+id/duocimin_progress"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:src="@drawable/min_progress"

android:visibility="invisible" />

<ImageView

android:id="@+id/duocimin_progress_hand"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:src="@drawable/min_progress_hand" />

<TextView

android:id="@+id/duocitvTime"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:text="00:00.0"

android:textSize="35sp"

android:textStyle="bold" />

<LinearLayout

android:id="@+id/duocihoursoflinear"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_above="@+id/duocitvTime"

android:layout_centerHorizontal="true"

android:gravity="center"

android:orientation="horizontal"

android:visibility="invisible" >

</LinearLayout>

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_alignBottom="@+id/duocimin_dial"

android:gravity="center_horizontal"

android:orientation="horizontal" >

<RelativeLayout

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginRight="100sp" >

</RelativeLayout>

<RelativeLayout

android:layout_width="wrap_content"

android:layout_height="wrap_content" >

</RelativeLayout>

</LinearLayout>

</RelativeLayout>

<RelativeLayout

android:id="@+id/buttonlinear"

android:layout_width="match_parent"

android:layout_height="74sp"

android:layout_alignParentBottom="true"

android:background="@drawable/v5_bottom_bar_bg_light" >

<Button

android:id="@+id/startbuttonduoci"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

android:layout_marginLeft="10sp"

android:layout_marginRight="10sp"

android:background="@drawable/startback"

android:text="开始" />

</RelativeLayout>

</RelativeLayout>

赞助本站

人工智能实验室

相关热词: 倒计时 特效 android开发

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港