Android控件九:時鐘(TextClock和AnalogClock)和倒計時(Chronometer)

1,AnalogClock(模擬時鐘)直接繼承View類

android:dial                    //設置該時鐘的錶盤圖片
android:hand_huor        //設置該時鐘的時針圖片
android:hand_minute     //設置該時鐘的分針圖片

代碼中使用:

<AnalogClock
       android:id="@+id/ac"
       app:layout_constraintLeft_toLeftOf="parent"
       app:layout_constraintTop_toBottomOf="@id/tc"
       app:layout_constraintRight_toRightOf="parent"
       app:layout_constraintBottom_toTopOf="@id/chronometer"
       android:layout_width="100dp"
       android:layout_height="100dp"
       android:hand_hour="@drawable/leak_canary_icon"
       android:dial="@drawable/ic_launcher_background"
       />

2,TextClock(文本時鐘)繼承TextView類

  • android:format12Hour //設置時鐘12小時制
  • android:format24Hour //設置時鐘24小時制
  • android: TimeZone //設置該時鐘的時區

代碼中使用:

 <TextClock
      app:layout_constraintTop_toTopOf="parent"
      app:layout_constraintLeft_toLeftOf="parent"
      android:id="@+id/tc"
      app:layout_constraintRight_toRightOf="parent"
      android:layout_width="match_parent"
      app:layout_constraintBottom_toTopOf="@id/ac"
      android:format24Hour="yyyy年MM月dd日H:mma EEEE"
      android:textSize="30dp"
      android:layout_height="wrap_content" />

3,Chronometer(計時器)繼承TextView類

  • android:format //設置顯示時間格式
  • setFormat(String format); //設置顯示時間格式
  • setBase(long base); //設置計時器的起始時間
  • start(); //開始計時
  • stpo(); //停止計時
  • setOnChronometerTickListener(Chronometer.OnChronometerTickListener listener); //綁定一個事件監聽器,當計時器改變時觸發該監聽器;

代碼中使用:
1 佈局中

<Chronometer
       android:layout_width="match_parent"
       app:layout_constraintLeft_toLeftOf="parent"
       app:layout_constraintTop_toBottomOf="@id/ac"
       app:layout_constraintRight_toRightOf="parent"
       android:id="@+id/chronometer"
       android:textSize="40dp"
       android:layout_height="wrap_content" />

2,代碼中

newChronometer = findViewById(R.id.chronometer);
       newChronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
           @Override
           public void onChronometerTick(Chronometer chronometer) {
               if (SystemClock.elapsedRealtime() - chronometer.getBase() > 60000) {
                   chronometer.stop();
                   stopButton.setEnabled(false);
                   startButton.setEnabled(true);
               }
           }
       });
   }

   @Override
   public void onClick(View view) {
       switch (view.getId()){
           case R.id.start:
               startButton.setEnabled(false);
               stopButton.setEnabled(true);
               newChronometer.setBase(SystemClock.elapsedRealtime());
               newChronometer.start();
               break;
           case R.id.stop:
               startButton.setEnabled(true);
               stopButton.setEnabled(false);
               newChronometer.stop();
               break;
               default:
       }
   }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章