日付と時刻コンポーネント (パート 1)


このセクションの概要:

このセクションでは、Android が時間を表示するために提供するいくつかのコントロールを紹介します。 TextClock、AnalogClock、Chronometer、そして実際には説明しませんが、時代遅れの DigitalClock もあります。 さて、このセクションを始めましょう!


1.TextClock (TextClock)

TextClock は、Android 4.2 (API 17) 以降に DigitalClock を置き換えるために起動されたコントロールです。
TextClock は現在の日付と時刻を文字列形式で表示できるため、Android 4.2 以降では TextClock を使用することをお勧めします。
このコントロールは、24 ビット Android システムでの使用をお勧めします。TextClock は 2 つの異なる形式を提供します。 1 つは日時を 24 進数で表示する方法、もう 1 つは日時を 12 進数で表示する方法です。ほとんどの人はデフォルト設定を好みます。

TextClock が提供する is24HourModeEnabled() メソッドを呼び出すことで、システムが 24 桁の時刻表示を使用しているかどうかを確認できます。 24 進数モード:

  • 時間が取得できない場合は、まず getFormat24Hour() を通じて値を返します。
  • 取得が失敗した場合は、getFormat12Hour() を通じて戻り値を取得します。
  • 上記の取得が失敗した場合は、次を使用します。デフォルト;

さらに、get メソッドに対応する次のメソッドを提供します:

android:format12Hour setFormat12Hour(CharSequence)12時間形式を設定しますandroid:format24HoursetFormat24Hour(CharSequence)24時間形式を設定しますアンドロイド: timeZonesetTimeZone( String)タイムゾーンを設定します

実際、内部の CharSequence である時間形式の定義により多くの時間を費やしています。 一般的に使用される記述と結果は次のとおりです:

& lt; TextClock
Android:layout_width = "wrap_content"
Android:layout_height = "wrap_content"
Android: format12hour = "m M/dd/yy h: mmaa "/& gt ;
<TextClock
’ s ’ s s ’ s ’ ‐ being ’ s t- t r- , and android:layout_width="wrap_content"
android content"
android:format12Hour="E , MMMM dd、 yyyy h:mmaa "/&gt;
" dd、yyyy h:mmaa "/&gt;
&lt;textclock
,, android:layout_width =" wrap_content "

実行結果:

1.png

PS:さらに、minsdk は 17 以上である必要があります。


2.AnalogClock (アナログ時計)

は、下の写真のようなものです:

2.png

公式ウェブサイトでは、次の 3 つの属性が順に表示されます:

3.png

: table background、table時針、時間の場合、カスタマイズできます:

コードの例は次のとおりです:

& lt; AnalogClock
Android:layout_width = "100dp"
Android:layout_height = "100dp"
Android: ダイヤル= "@mip MAP/IC_C_BG "
android:hand_hour="@mipmap/zhen_shi"
android:hand_ minutes="@mipmap/zhen_fen" />

実行結果:

4.png


3.クロノメーター(タイマー)

タイトルの通り、シンプルなタイマーです。使用例に直接進みましょう:

使用例:

実装コード:

レイアウトコード:


<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"
アンドロイド: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="horizo​​ntal">

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

<ボタン
android:id="@+id/ btnStop"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="停止记時刻" />

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

< ;ボタン
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,bt n_stop,btn_base,btn_format;

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

private void initView() {
クロノメーター = (クロノメーター) findViewById(R.id .chronometer);
btn_start = (ボタン) findViewById(R.id.btnStart);
btn _stop = (ボタン) findViewById(R.id.btnStop);
btn_base = (ボタン) (R.id.btnリセット);
btn_format = (ボタン) 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(); // StartTiming
Case R.id.btnreset:
Chronometer.setBase(SystemClock。ElapsedRealTime()); //Reset
Break; Chronometer){
string time = chronometer.getText()。toString();
"、toast.length_short).show();

実行中のスクリーンショット:

5.png


このセクションの概要:

このセクションでは、長さからわかるように、TextClock、AnalogClock、および Chronometer の 3 つのコンポーネントを簡単に紹介します。 実際、私はこれらのものをあまり使用しません。ほとんど使用しません...知っておくと良いですし、使用方法は非常に簡単です... 以上、この項はここで終わります〜ありがとうございました

属性名関連メソッド