最近没事写了一个简单的widget的demo,现在贴上来供自己记忆,也希望大神指点。
先看一下效果图:
点击按钮后:下面条目变化:
其中有很多小问题,当然不是重点。就以我写的流程来还原下如何开发一个widget吧。
最基本的步骤:
1.先定义一个类MyWidget,继承AppWidgetProvider
2.查看AppWidgetProvider的源代码,发现其是一个广播接收者,如下图:
->源码
那么我们自定义的类MyWidget也就是一个广播接收者了,而广播接收者作为四大组件,如果其能被识别,一定是要在清单文件中进行注册的。因此第三步就是在清单文件中注册。
3.在清单文件中注册。
如何进行注册?第一次我们谁都不知道,但是在不知道的时候可以参考google的api文档,看过以后注册如下:
如图所示,会报一个编译错误,原因就是没有example_appwidget_info.xml这个文件,因此下一步就是建立这个文件
4.在res文件夹中建立xml文件夹(必须这个名字),在文件夹下建文件时选择file,在后缀名加上.xml
文件内部结构如下:
注意,这也是从google指导中拷贝的,但是去掉了很多项,因为一个简单的widget不需要那么多项,有兴趣的可以自己翻阅google文档。
下面解释一下这里面需要的各个项的含义:
minWidth,minHeight:在桌面显示的最小宽度,最小高度。
android:updatePeriodMillis-->widget的更新时间,最小值为半个小时,最大不限,也就是无论你写多小,都会换成半个小时来更新一次,为了省电
android:previewImage="@drawable/ic_launcher"-->在桌面的widget界面显示的图片。也就是如下图所示:
android:initialLayout-->在桌面上显示的样子。
因为没有建立这个layout文件,因此下一步就是建立这个文件
5.建立initialLayout文件:
这里的布局就按照自己的需求来建立就好了。
通过以上五步,我们基本可以让一个widget显示在桌面上了,那么接下来如何让其动态更新信息(widget最小更新时间也是半个小时,怎么缩短?)?
如何响应点击事件与用户交互?请看
android开发之widget初步--2