addison_lin 发表于 2012-2-4 11:47:42

Android 各种时间样式的设置方法

   本例中用到了三个时间样式,分别是模拟时钟样式,线程时钟样式和数字时钟样式
       三种时钟样式都是平时我们大家见到的显示时间的样式,所以希望这个帖子对大家有帮助,
一:本例基于android 2.2平台,都交代清楚了,现在开始做
    首先在layout布局里面修改main文件,需要添加两个TextView(算上默认的一共三个)一个DigitalClock,一个AnalogClock,采用的是绝对布局,具体怎么添加相信大家都会,我就把代码贴上,以供参考:
..\res\layout\main.xml
   <?xml version="1.0" encoding="utf-8"?>
   <AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
   android:id="@+id/TextView_showTime"
    android:layout_width="210px"
    android:layout_height="49px"
    android:textSize="35px"
    android:layout_x="92px"
    android:layout_y="232px"
   
    ></TextView>
<AnalogClock
android:id="@+id/Clock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="92px"
android:layout_y="44px"></AnalogClock>

<DigitalClock
android:id="@+id/DigitalClock01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="35px"
android:layout_x="92px"
android:layout_y="300px"></DigitalClock>
<TextView
android:id="@+id/widget46"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="模拟时钟"
android:layout_x="21px"
android:layout_y="56px"


></TextView>
<TextView
android:id="@+id/widget47"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="线程时钟"
android:layout_x="21px"
android:layout_y="238px"
></TextView>
<TextView
android:id="@+id/widget48"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="数字时钟"
android:layout_x="21px"
android:layout_y="318px"
></TextView></AbsoluteLayout>
二:开始写主程序了,为了直观的让大家理解 ,关键代码有注释,就不多废话了 ,贴上代码以供参考:
package lhj.example.android.time;
//导入需要的包
import android.app.Activity;
import android.os.Bundle;
import java.util.Calendar;
import android.os.Handler;
import android.os.Message;
import android.widget.AnalogClock;
import android.widget.DigitalClock;
import android.widget.TextView;

public class time extends Activity implements Runnable{
//定义要使用的类对象
private TextView showTime;//显示进程时钟的TextView
AnalogClock myClock;//模拟时钟
DigitalClock myDigClock;//数字时钟
private final int msg_Key=0x1234;//发送消息内容
public Handler myHandler;//发送处理消息的类
public Calendar myCalendar;//日历类
private int my_Hour,my_Minute,my_Second;//时分秒
private Thread myT;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      //导入主屏布局main.xml
      setContentView(R.layout.main);
      //从xml中获取模拟字时钟UI对象
      myClock=(AnalogClock)findViewById(R.id.Clock);
      //从xml中获取数字字时钟UI对象
      myDigClock=(DigitalClock)findViewById(R.id.DigitalClock01);
       //从xml中获取TextView UI对象
      showTime=(TextView)findViewById(R.id.TextView_showTime);
      //通过Handler来接收进程所传递的信息并更新TextView
      myHandler=new Handler(){
         @Override
         public void handleMessage(Message msg){
          //这是处理信息的反法
          super.handleMessage(msg);
          switch (msg.what){
          case msg_Key:
         //在这处理要TextView对象Show时间事件
         showTime.setText(my_Hour+":"+my_Minute+":"+my_Second);
         break;
         default:break;
          }
         
         }
         
         
      };
      //通过进程来持续取得系统时间
      myT=new Thread(this);
      
      myT.start();
      
    }
//实现一个Runable接口实例化一个进程对象,用来持续的取得系统时间
@Override
public void run() {
// TODO Auto-generated method stub
try{
   do{
    //取得系统时间
    long Time=System.currentTimeMillis();
    myCalendar=Calendar.getInstance();
    myCalendar.setTimeInMillis(Time);
    my_Hour=myCalendar.get(Calendar.HOUR);
    my_Minute=myCalendar.get(Calendar.MINUTE);
    my_Second=myCalendar.get(Calendar.SECOND);
    //让进程休息一秒
    Thread.sleep(1000) ;
    //重要关键程序:取出时间后发出信息给Handler
    Message msg=new Message();
    msg.what=msg_Key;
    myHandler.sendMessage(msg);
    //重要关键程序   取得时间后发送信息给Handler
   }while(myT.interrupted()==false);
   
   //当系统发出中断信息时停止本循环
   }catch(InterruptedException e){
    e.printStackTrace();
}

}
}

页: [1]
查看完整版本: Android 各种时间样式的设置方法