一、Widget是什么?
Widget是桌面小部件。类似与桌面图标,桌面图标是静态的;Widget是动态的。知道是什么了么?其实你是见过的,比如Android系统桌面上的搜索框等,只要是动态的就是它了。还不知道?那就看下文吧。
二、Widget相关类
AppWidgetProvider:继承自BroadcastRecevier,在AppWidget应用update、enable、disable 和 delete 时接收通知。其中,onUpdate、onReceive 是最常用到的方法,它们接收更新通知。
AppWidgetProviderInfo:描述AppWidget的大小、更新频率和初始界面等信息,以XML文件形式存在于应用的res/xml/目录下。
AppWidgetManager:负责管理AppWidget,向AppwidgetProvider发送通知。
RemoteViews:一个可以在其他应用进程中运行的类,向AppWidgetProvider发送通知。
三、第一个Widget
[1]、布局文件(main.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:gravity="center"
android:orientation="vertical" >
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="请叫我Widget" />
</LinearLayout>
[2]、部件配置(xml/widget_provider.xml)
<?xml version="1.0" encoding="UTF-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/main"
android:minHeight="40dp"
android:minWidth="100dp"
android:updatePeriodMillis="12345" >
</appwidget-provider>
[3]、AndroidManifest.xml
<receiver
android:name=".FirstWidgetProvider"
android:label="FirstWidget" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/widget_provider" />
</receiver>
[4]、来个extends AppWidgetProvider
public class FirstWidgetProvider extends AppWidgetProvider {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
super.onReceive(context, intent);
}
}
四、小结
现在的很多定制系统已经取消了Android系统的深层菜单,把所有的应用图标都放在了开机桌面。这更加提供了Widget的需求,静态的图标已经满足不了用户需求。只有美化使用动态Widget才可以开发出更加漂亮的应用。图标是应用程序的容颜么!