自定义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"         >        <TextView                android: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" />        <LinearLayout                android:layout_width="wrap_content"                android:layout_height="wrap_content"                android:orientation="vertical"                android:layout_gravity="center"                 >                <TextView                        android:id="@+id/textViewWeek"                        android:layout_width="wrap_content"                        android:layout_height="wrap_content"                        android:textSize="20sp"                        android:text="星期X"                        android:lines="1" />                <TextView                        android: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>

布局空间设置

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把布局加载到本ViewGroup                LayoutInflater 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 {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }    @Override    public 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

<LinearLayoutxmlns: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.DigitalClock        android:id="@+id/digitalClock1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"         android:text="DigitalClock"         >    </com.javen.digitalclock.DigitalClock></LinearLayout>

更多相关文章

  1. Android JNI学习笔记——so文件动态加载
  2. Android局部布局替换实现
  3. Attribute is missing the Android namespace prefix——android
  4. [android]布局(容器)简介和使用方法
  5. Android类加载器源码分析
  6. android之ListView的item布局问题总结
  7. Android实现ListView异步加载图片

随机推荐

  1. android 连接服务器的方法及安全性问题
  2. Android使用Asynchronous Http Client完
  3. 【简单的学生管理界面】Android添加简单
  4. 1、Android中支持的Snesor种类
  5. android 实用sax 读取xml文件内容
  6. android 开机动画修改以及默认壁纸
  7. Android 中如何得到字符的像素宽度
  8. Android问题集锦
  9. Android仿QQ消息列表ListView滑动删除效
  10. 2013.03.19(7)———android scrollview和l