Date & Time component (Part 1)


Introduction to this section:

This section brings you several controls that Android provides us with to display time. They are: TextClock, AnalogClock, Chronometer, and actually there is an outdated DigitalClock that I won’t explain! Okay, let’s start this section!


1.TextClock (TextClock)

TextClock is a control launched after Android 4.2 (API 17) to replace DigitalClock!
TextClock can display the current date and time in string format, so it is recommended to use TextClock after Android 4.2.
This control is recommended for use in 24-bit android systems. TextClock provides two different formats. One is to display the time and date in 24 base, and the other is to display the time and date in 12 base. Most people like the default settings.

You can check whether the system is using 24-digit time display by calling: is24HourModeEnabled() method provided by TextClock! In 24-decimal mode:

  • If the time is not obtained, first return the value through getFormat24Hour();
  • If the acquisition fails, obtain the return value through getFormat12Hour();
  • If the above fails, the default will be used;

In addition, he provides us with the following methods, corresponding to the get method:

##android:format24HoursetFormat24Hour(CharSequence)Set the 24-hour formatandroid :timeZonesetTimeZone(String)Set time zone

In fact, we spend more time on the definition of time form, which is the CharSequence inside! Here are the commonly used writing methods and results:

<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format12Hour="MM /dd/yy h:mmaa"/>
<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format12Hour="MMM dd, yyyy h ; ;
<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format12Hour="E, MMMM dd, yyyy h:mmaa"/>
                                                                                                                                                                       android:layout_width="wrap_content" TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:format12Hour="Noteworthy day: 'M/d/yy"/>

Run results:

1.png

##PS:In addition, minsdk must be greater than or equal to 17!


2.AnalogClock (analog clock)

is like the picture below:

2.png

We can use it on the official website Seeing three attributes like this:

3.png

are: table background, table hour hand, minute hand picture, we can customize it ourselves:

The sample code is as follows:

<AnalogClock
android:layout_width="100dp"
android:layout_height="100dp"
android:dial=" @mipmap/ic_c_bg"
; android:hand_hour="@mipmap/zhen_shi"
; android:hand_minute="@mipmap/zhen_fen" />

Running results:

4.png


##3.Chronometer(timer)

As mentioned , it is a simple timer, let’s go directly to the usage example:

Usage example:

Implementation code:

Layout code:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <Chronometer
        android:id="@+id/chronometer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:textColor="#ff0000"
        android:textSize="60dip" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dip"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btnStart"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="开始记时" />

        <Button
            android:id="@+id/btnStop"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="停止记时" />

        <Button
            android:id="@+id/btnReset"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="重置" />

        <Button
            android:id="@+id/btn_format"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="格式化" />
    </LinearLayout>

</LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener,Chronometer.OnChronometerTickListener{

    private Chronometer chronometer;
    private Button btn_start,btn_stop,btn_base,btn_format;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        chronometer = (Chronometer) findViewById(R.id.chronometer);
        btn_start = (Button) findViewById(R.id.btnStart);
        btn_stop = (Button) findViewById(R.id.btnStop);
        btn_base = (Button) findViewById(R.id.btnReset);
        btn_format = (Button) findViewById(R.id.btn_format);

        chronometer.setOnChronometerTickListener(this);
        btn_start.setOnClickListener(this);
        btn_stop.setOnClickListener(this);
btn_base.setOnClickListener(this);
btn_format.setOnClickListener(this);

}

@Override
public void onClick(View v) {
switch (v. getId()){
case R.id.btnStart:
chronometer.start();//Start timing
break;
case R.id.btnStop:
        chronometer.stop( );//Stop timing
                                                                                                                                                                                       ;
case R.id .btn_format:
chronometer.setFormat ("" time:%s "); // Change the time display format
Break onChronometerTick(Chronometer chronometer) {
String time = chronometer.getText().toString();
if(time.equals("00:00")){
Toast.makeText(MainActivity.this, "Time's up~",Toast.LENGTH_SHORT).show();
       }
         
}

Running screenshot:

5.png


##Summary of this section:

This section will tell you A brief introduction to the three components of TextClock, AnalogClock, and Chronometer is shown from the length of the article. In fact, I don’t use these things much, almost never... It’s good to know them, and their usage is super simple... That’s it, this section ends here~Thank you

Attribute NameRelated MethodDescription
##android:format12HoursetFormat12Hour(CharSequence)Set the 12-hour format