Android实现自定义的 时间日期 控件
生活随笔
收集整理的這篇文章主要介紹了
Android实现自定义的 时间日期 控件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
自定義DigitalClock的布局
?
?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center"android:orientation="vertical"><TextViewandroid:id="@+id/textViewTime"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="55sp"android:text="10:50:30"android:layout_gravity="center"android:lines="1" /><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"android:layout_gravity="center"><TextViewandroid:id="@+id/textViewWeek"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20sp"android:text="星期X"android:lines="1" /><TextViewandroid:id="@+id/textViewDate"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="20sp"android:text="XXXX年XX月X日"android:lines="1" /></LinearLayout> </LinearLayout>?
布局空間設(shè)置
DigitalClock?
package com.javen.digitalclock;import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;import android.content.Context; import android.os.Handler; import android.os.Message; import android.util.AttributeSet; import android.view.LayoutInflater; import android.widget.LinearLayout; import android.widget.TextView;public class DigitalClock extends LinearLayout {static SimpleDateFormat sdf_time = new SimpleDateFormat("hh:mm:ss");static SimpleDateFormat sdf_date = new SimpleDateFormat("yyyy年MM月dd日");static Calendar cal = Calendar.getInstance();private TextView textViewTime, textViewDate, textViewWeek;// public DigitalClock(Context context, AttributeSet attrs, int defStyle) { // super(context, attrs, defStyle); // }public DigitalClock(Context context, AttributeSet attrs) {super(context, attrs);// 使用layoutinflater把布局加載到本ViewGroupLayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);inflater.inflate(R.layout.digitalcolck_layout, this);textViewTime = (TextView) findViewById(R.id.textViewTime);textViewDate = (TextView) findViewById(R.id.textViewDate);textViewWeek = (TextView) findViewById(R.id.textViewWeek);startThread();}public static String getCurrentTime(Date date) {sdf_time.format(date);return sdf_time.format(date);}public static String getCurrentDate(Date date) {sdf_date.format(date);return sdf_date.format(date);}public static String getCurrentWeekDay(Date dt) {String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };cal.setTime(dt);int w = cal.get(Calendar.DAY_OF_WEEK) - 1;if (w < 0)w = 0;return weekDays[w];}private void startThread() {new Thread(new Runnable() {public void run() {while (true) {handler.sendEmptyMessage(12);try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch block e.printStackTrace();}}}}).start();}Handler handler = new Handler() {public void handleMessage(Message msg) {super.handleMessage(msg);if (msg.what == 12) {Date date = new Date();textViewTime.setText(getCurrentTime(date));textViewDate.setText(getCurrentDate(date));textViewWeek.setText(getCurrentWeekDay(date));}}};}?
mainActivity
?
package com.javen.digitalclock;import android.os.Bundle; import android.app.Activity; import android.view.Menu;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu);return true;} }布局文件main.xml
?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"tools:context=".MainActivity"android:layout_width="match_parent"android:layout_height="match_parent" ><com.javen.digitalclock.DigitalClockandroid:id="@+id/digitalClock1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="DigitalClock"></com.javen.digitalclock.DigitalClock></LinearLayout>?
總結(jié)
以上是生活随笔為你收集整理的Android实现自定义的 时间日期 控件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iis写权限利用
- 下一篇: PIC中档单片机汇编指令详解(6)