现在的位置: 首页 > 综合 > 正文

时钟组件

2018年03月31日 ⁄ 综合 ⁄ 共 2157字 ⁄ 字号 评论关闭

 

 

在main.xml中:

 

<LinearLayout

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

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:background="#000000"

    android:orientation="vertical"

    android:gravity="center_horizontal">

    <AnalogClock

        android:id="@+id/myAnalogClock"

        android:layout_marginTop="8dp"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"/>

  <TextView

      android:id="@+id/info"

      android:gravity="center_horizontal"

      android:layout_marginTop="20dp"

      android:layout_width="fill_parent"

      android:layout_height="wrap_content"

      android:textColor="#ffffff"

      android:textSize="20dp"/>

</LinearLayout>

 

 

 

 

 

在MyAnalogClockThreadDemo.java中:

 

package com.li.analogclockthread;

 

import java.text.SimpleDateFormat;

import java.util.Date;

 

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.app.Activity;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.TextView;

import android.support.v4.app.NavUtils;

 

public class MyAnalogClockThreadDemo extends Activity {

  private TextView info = null;

  private static final int SET = 1;  //标记

  private Handler handler = new Handler(){

     @Override

     public void handleMessage(Message msg) {

       switch(msg.what){

       case SET:

         MyAnalogClockThreadDemo.this.info

         .setText("当前时间为:" + msg.obj.toString());

         break;

        

       }

     }

  };

  private class ClockThread implements Runnable{

     public void run() {

       while(true){    //一直更新

         Message msg = MyAnalogClockThreadDemo.this.handler.obtainMessage(

              MyAnalogClockThreadDemo.SET,new SimpleDateFormat(

                   "yyyy-MM-dd HH:mm:ss").format(new Date()));

        MyAnalogClockThreadDemo.this.handler.sendMessage(msg);  //发送信息

         try {

            Thread.sleep(1000);

         } catch (InterruptedException e) {

           e.printStackTrace();

         }

       }

     }

    

  }

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        super.setContentView(R.layout.main);

        this.info = (TextView)super.findViewById(R.id.info);

        new Thread(new ClockThread()).start();    //启动线程

    } 

}

 

抱歉!评论已关闭.