一步一步学android控件(之十五) —— DegitalClock & AnalogClock

原本计划DigitalClock和AnalogClock单独各一篇来写,但是想想,两个控件的作用都一样,就和在一起写一篇了。

DegitalClock和AnalogClock控件主要用于显示当前时间信息,使用也很简单。先看效果图:


上面小的长方形为DegitalClock效果图,正方形的为AnalogClock,上图中是用了自定义背景widget_button_drawable.xml,详细内容参见一步一步学android控件(之三) —— Button。今天的主要内容在布局文件中——widget_lclock_layout.xml

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <DigitalClock
        android:id="@+id/show_degital_clock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginRight="94dp"
        android:layout_marginTop="124dp"
        android:background="@drawable/widget_button_drawable"
        android:textColor="@color/text_view_fill" />

    <AnalogClock
        android:id="@+id/show_analog_clock"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/show_degital_clock"
        android:layout_below="@+id/show_degital_clock"
        android:layout_marginRight="31dp"
        android:layout_marginTop="61dp"
        android:background="@drawable/widget_button_drawable" />

</RelativeLayout>

其中 @color/text_view_fill的值为#e0FFFFCC 。 

 

activity——WidgetClockActivity 中的内容只有一个函数onCreate:

 

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.widget_lclock_layout);
    }

老规矩在ViewData.java中添加如下内容:

 

 

public static final int DEGITAL_CLOCK_ID = NUMBER_PICKER_ID + 1;
    public static final String DEGITAL_CLOCK_NAME = "DegitalClock";
private static final ViewData mDegitalClock = new ViewData(DEGITAL_CLOCK_NAME,
            DEGITAL_CLOCK_ID);
View_Datas.add(mDegitalClock);


WidgetsAdapter.java的handleItemClicked函数中添加如下内容:

 

 

case ViewData.DEGITAL_CLOCK_ID:
            intent.setClass(mContext, WidgetClockActivity.class);
            mContext.startActivity(intent);
            break;

 


注意:在api17中DegitalClock被deprecated,使用TextClock替代。


DegitalClock和AnalogClock控件就学到这里,下一个控件CheckBox.


 

posted on 2013-11-19 09:14  我的小人生  阅读(366)  评论(0编辑  收藏  举报