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