- 在com.itheima.mobilesafe.receiver目录下创建MyWidget并且继承AppWidgetProvider
- 在功能清单文件注册,参照文档
<receiver android:name=".receiver.MyWidget" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/appwidget_info" />
</receiver>
- 在res/xml/创建文件example_appwidget_info.xml拷贝文档内容
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp"
android:minHeight="72dp"//能被调整的最小宽高,若大于minWidth minHeight 则忽略
android:updatePeriodMillis="86400000"//更新周期,毫秒,最短默认半小时
android:previewImage="@drawable/preview"//选择部件时 展示的图像,3.0以上使用,默认是ic_launcher
android:initialLayout="@layout/example_appwidget"//布局文件
android:configure="com.example.android.ExampleAppWidgetConfigure"//添加widget之前,先跳转到配置的activity进行相关参数配置,这个我们暂时用不到
android:resizeMode="horizontal|vertical"//widget可以被拉伸的方向。horizontal表示可以水平拉伸,vertical表示可以竖直拉伸
android:widgetCategory="home_screen|keyguard"//分别在屏幕主页和锁屏状态也能显示(4.2+系统才支持)
android:initialKeyguardLayout="@layout/example_keyguard"//锁屏状态显示的样式(4.2+系统才支持)
>
</appwidget-provider>
- 精简example_appwidget_info.xml文件,最终结果:
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp"
android:minHeight="72dp"
android:updatePeriodMillis="1800000"
android:initialLayout="@layout/appwidget"
>
</appwidget-provider>
- widget布局文件:appwidget.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#f00"
android:text="我是widget,哈哈哈"
android:textSize="30sp" />
</LinearLayout>