RemoteViews:远程的view,用在widget和自定义notification布局里。本文简单完成一个widget组件。
1.定义Widget布局XML /res/layout/widget_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ccc"
android:orientation="vertical" >
<TextView
android:id="@+id/widgetButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:background="#000000"
android:text="firstWidget"
android:textSize="20sp" />
</LinearLayout>
2.定义Widget属性文件 /res/xml/widget_info.xml
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="232dp"
android:minHeight="132dp"
android:updatePeriodMillis="86400000"
android:initialLayout="@layout/widget_layout" >
</appwidget-provider>
3. 创建FirstWidgetProvider子类,实现onUpdate()等函数。
package net.qingtian.appwidget;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.util.Log;
public class FirstWidgetProvider extends AppWidgetProvider {
private static final String TAG = "qingtian";
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
Log.i(TAG, "onupdated");
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
Log.i(TAG, "onDeleted");
super.onDeleted(context, appWidgetIds);
}
@Override
public void onDisabled(Context context) {
Log.i(TAG, "onDisabled");
super.onDisabled(context);
}
@Override
public void onEnabled(Context context) {
Log.i(TAG, "onEnabled");
super.onEnabled(context);
}
}
4.在manifest中注册receiver,添加一个action为 android.appwidget.action.APPWIDGET_UPDATE 的IntentFilter,并添加如下<meta- data>标识:
<receiver android:name="net.qingtian.appwidget.FirstWidgetProvider" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" >
</action>
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_info" >
</meta-data>
</receiver>
简单的widget用法,初识庐山真面目,查看widget声明周期。
demo下载地址:http://download.csdn.net/detail/u011647962/8182789