Android之App Widget开发实例

前面一节已经实现了一个简单的App Widget,这里将通过一个实例继续深入学习App Widget。

首先继续了解下App Widget框架的主要的类:

AppWidgetProvider:继承自BroadcastReceiver,在App Widget应用update,enable,disable和deleted时接受通知。其中onUpdate,onReceive是最常用到的方法。

AppWidgetProviderInfo:描述AppWidget的大小,更新频率和初始界面等信息,以xml文件的形式存在于应用中的res/xml目录下。

AppWidgetManager:负责管理AppWidget,向AppWidgetProvider发送通知。

RemoteViews:一个可以在其他应用进程中运行的类,是构造AppWidget的核心。

下面开始代码的编写,首先在res/xml下建立myappwidetprovider.xml、

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <appwidget-provider xmlns:Android="http://schemas.android.com/apk/res/android"  
  3.     android:minWidth="100dp"  
  4.     android:minHeight="72dp"  
  5.     android:updatePeriodMillis="86400000"  
  6.     android:initialLayout="@layout/myappwidget"  
  7.     >  
  8. </appwidget-provider>  
  上面分别是 定义widget的宽度,高度,更新周期,以及layout的widget布局。

  下面是我们的布局文件:

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="match_parent"  
  4.     android:layout_height="match_parent"  
  5.     android:background="@drawable/widget_bg1"  
  6.     android:gravity="center"  
  7.     android:id="@+id/layout"  
  8.     android:orientation="vertical" >  
  9.   
  10.     <TextView  
  11.         android:id="@+id/txtMonth"  
  12.         android:layout_width="wrap_content"  
  13.         android:layout_height="wrap_content"  
  14.         android:textColor="#000000"  
  15.         android:layout_margin="2dp"  
  16.         android:text="" />  
  17. <TextView  
  18.         android:id="@+id/txtDay"  
  19.         android:layout_width="wrap_content"  
  20.         android:layout_height="wrap_content"  
  21.         android:textColor="#990033"  
  22.         android:textSize="25dp"  
  23.         android:text="" />  
  24. <TextView  
  25.         android:id="@+id/txtWeekDay"  
  26.         android:layout_width="wrap_content"  
  27.         android:layout_height="wrap_content"  
  28.         android:layout_margin="2dp"  
  29.         android:textColor="#000000"  
  30.         android:text="" />  
  31. </LinearLayout>  

相关推荐