先演示一个Demo代码。功能是每隔一秒实现Textview颜色的变化,而且是循环变化直到停止。

package com.example.handlerpost;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.app.Activity;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;public class MainActivity extends Activity implements OnClickListener {Button mBtok;Button mBtCancel;TextView mNumber;private int mRunCount = 0;private int TIME = 1000;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mBtok = (Button) findViewById(R.id.btok);mBtCancel = (Button) findViewById(R.id.btCancel);mNumber = (TextView) findViewById(R.id.number);mBtCancel.setOnClickListener(this);mBtok.setOnClickListener(this);}@Overridepublic void onClick(View arg0) {switch (arg0.getId()) {case R.id.btok:mHandler.removeCallbacks(mRunnable);mHandler.postDelayed(mRunnable, 0);break;case R.id.btCancel:closeTimer();break;}}private void closeTimer() {mRunCount = 0;mHandler.removeCallbacks(mRunnable);mNumber.setTextColor(android.graphics.Color.parseColor("#FF4040"));//最初的颜色}Handler mHandler = new Handler() {public void handleMessage(Message msg) {switch (msg.what) {default:break;}}};Runnable mRunnable = new Runnable() {@Overridepublic void run() {switch (mRunCount) {case 0:mNumber.setTextColor(android.graphics.Color.parseColor("#FF4040"));break;case 1:mNumber.setTextColor(android.graphics.Color.parseColor("#FF3E96"));break;case 2:mNumber.setTextColor(android.graphics.Color.parseColor("#FF1493"));break;case 3:mNumber.setTextColor(android.graphics.Color.parseColor("#FF00FF"));break;case 4:mNumber.setTextColor(android.graphics.Color.parseColor("#FF0000"));break;case 5:mNumber.setTextColor(android.graphics.Color.parseColor("#C1C1C1"));break;case 6:mNumber.setTextColor(android.graphics.Color.parseColor("#C0FF3E"));break;case 7:mNumber.setTextColor(android.graphics.Color.parseColor("#BF3EFF"));break;case 8:mNumber.setTextColor(android.graphics.Color.parseColor("#BC8F8F"));break;case 9:mNumber.setTextColor(android.graphics.Color.parseColor("#9AFF9A"));break;case 10:mNumber.setTextColor(android.graphics.Color.parseColor("#0000EE"));mRunCount = -1;break;}mRunCount++;// handler的postDelayed方法实现定时器try {mHandler.postDelayed(this, TIME);} catch (Exception e) {e.printStackTrace();mRunCount = 0;}}};}

1,首先创建一个Handler对象Handler mHandler=new Handler();2,然后创建一个Runnable对象
Runnable mRunnable=new Runnable(){   @Override   public void run() {    //要做的事情,这里再次调用此Runnable对象,以实现每秒实现一次的定时器操作     mHandler.postDelayed(this, 1000);   } };
3,mHandler.postDelayed(runnable, 1000);使用PostDelayed方法,1秒后调用此Runnable对象
4. 定义int类型变量mRunCount 变量和定时器结合,每走1S变量加1,到最后一个值加1后为0,然后继续循环。5,mHandler.removeCallbacks(runnable); 用此方法关闭循环定时器
   

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. 类和 Json对象
  3. python list.sort()根据多个关键字排序的方法实现
  4. Android腾讯微博开发之随机字符串与签名实现
  5. Android拨号器的实现(四中点击事件)
  6. android 设置全屏的两种方法
  7. Android启动画面实现
  8. Android(安卓)开机自启动程序的实现
  9. Android(安卓)- ToDoList(fragment) 详解

随机推荐

  1. android中处理各种触摸事件
  2. build WebRTC for android
  3. Android开发日记 --(1)Android系统开发环境
  4. Android: Android Resources
  5. Android Studio升级3.2以后 Androidx 异
  6. Android密码明文密文切换
  7. Android启动过程之SystemServer
  8. android百度地图标记点代码
  9. Android原始XML的读写操作
  10. Android _Android登录对话框实现(1)