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:
}
}