原本计划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.