Android桌面小组件---Widget组件开发(什么是Widget)

1.什么是Weidget
Widget就是可以放在桌面上的组件,包括像天气、便签、日历、流量控制等等,都是Widget,点击进去,可以提供相应的功能;

2.Widget的特点
(1)可以自定义
(2)可以及时更新

3.Widget使用
(1)绘制Widget的布局:和其他应用类的APP不同的是,Widget支持的控件比较少:除了基本的布局之外(相对、线性、帧、网格),ImageView、ImageButton、TextView、Progressbar、Clock、ListView等类型的,其他的View控件都是不支持的;如果想要其他复杂的控件,需要修改FrameWork层的代码
(2)设置Widget的属性:设置宽度、高度、最大宽度和最小高度等;
(3)定义AppWidgetProvider:类似于广播,接收广播在此处做更新操作;
(4)提供Configuration Activity:提供配置Activity,来初始化我们的Widget

4.Widget的基本用法
在工程项目中创建一个App Widget文件,相应的生成了3个文件,我们来看一下这3个文件;
在这里插入图片描述

(1)App Widget的布局文件
在这里插入图片描述
在这个布局文件中,自动给我们的是一个TextView,我们也可以根据自己实现的功能,来添加相应的控件,但只能添加Widget支持的控件;
(2)设置Widget的属性文件
在这里插入图片描述
第二个文件是Widget的属性文件,可以配置该Weidget的属性,像最小宽度(minWidth)、最小高度(minHeight)、实现的Widget布局(initialLayout)、以及刷新速率(updatePeriodMillis),其实设置这4个属性就足够了;

(3)定义AppWidgetProvider
在这里插入图片描述
第三个文件就是自定义AppWidgetProvider,通过继承AppWidgetProvider实现;AppWidgetProvider是继承自BroadcastReceiver;
在这里插入图片描述
在AppWidgetProvider中,有几个重要的方法:
onUpdate方法
在这里插入图片描述
在这里插入图片描述

5.做一个简单的时钟计数器
首先创建一个服务,在这个服务中,做计时操作,当第一个Widget被创建时,会调用onEnable()方法,绑定Service开始计时操作;

在onCreate方法中开启计时功能,对于Widget组件的刷新需要RemoteViews和AppWidgetManager,因此先创建一个RemoteViews对象;
在这里插入图片描述
RemoteViews对象需要绑定Widget布局文件中的控件,在前面的内容中知道是TextView,并且填充要显示的内容(时间);
在这里插入图片描述
绑定Widget布局中的控件之后,要通知AppWidgetProvider刷新,就是update操作;因此创建AppWidgetManager对象,通过AppWidgetManager对象执行updateAppWidget方法,其实就是进入到AppWidgetProvider的onUpdate方法中执行了刷新操作;
在这里插入图片描述
当Widget组件创建之后,会调用onEnabled方法,在这个方法中进行启动Service的操作,启动计时操作。
在这里插入图片描述
所有的工作完成之后,不要忘记在清单文件中注册receiver和service。
在这里插入图片描述
以上就是Widget组件开发的简单介绍,后续我会继续更新Widget开发相关的内容。

发布了15 篇原创文章 · 获赞 5 · 访问量 640

猜你喜欢

转载自blog.csdn.net/qq_33235287/article/details/104113294