Android Widget学习笔记
2016-02-20 18:20
549 查看
学习目标:
1)掌握Widget的用途;2)掌握Widget的特点和用法步骤。
Widget的用途:类似便签
Widget特点:快捷、方便;个性化、可自定义功能;可及时控制更新Widget显示内容
Widget用法步骤:
1)绘制Widget布局;2)配置Widget的基本属性;3)定义AppWidgetProvider;4)提供Configuration Activity
学习目标:
1)掌握Android Widget基础用法及步骤;2)Android Widget实现一个基本的时钟功能
用发步骤流程图:
绘制Widget布局==》配置Widget的基本属性==》定义AppWidgetProvider==》提供Configuration Activity
课程目标:Android Widget实现一个基础的时钟功能
具体效果:1)可以自动更新时间;2)可以添加和删除时钟Widget
=========在地铁霍营站往东直门方向那一站有个有个比较大的长方形液晶表=========
1)绘制Widget布局:widget.xml,默认只支持部分控件
2)配置Widget的基本属性:
在res目录下创建xml文件夹,再在此xml文件夹下创建资源类型为AppWidget Provider的文件,比如叫做widgetconfig.xml,注意res目录下的文件名都必须小写!!!
在widgetconfig.xml中配置minWidth、minHeight、initialLayout、updatePeriodMillis(刷新时间间隔,默认至少30分钟),至此Widget基本属性配置完毕!!!
3)新建一个类,继承自AppWidgetProvider,并重写onDeleted(widget被从屏幕移除)、onDisabled(最后一个widget被从屏幕移除)、onEnabled(第一个widget被添加到屏幕上)、onReceive、onUpdate(widget被刷新)方法。
然后!!!定义一个类,继承自Service,当第一个widget被添加到屏幕上时(AppWidgetProvider的onEnabled方法)启动此服务,该Service里面执行更新时间的操作。注意Service乃四大组件之一,需要注册
当最后一个widget被从屏幕移除时(AppWidgetProvider的onDisabled方法)停止此服务。
启动自定义服务代码:context.startService(new Intent(context, TimerService.class));
停止自定义服务代码:context.stopService(new Intent(context, TimerService.class));
1)掌握Widget的用途;2)掌握Widget的特点和用法步骤。
Widget的用途:类似便签
Widget特点:快捷、方便;个性化、可自定义功能;可及时控制更新Widget显示内容
Widget用法步骤:
1)绘制Widget布局;2)配置Widget的基本属性;3)定义AppWidgetProvider;4)提供Configuration Activity
学习目标:
1)掌握Android Widget基础用法及步骤;2)Android Widget实现一个基本的时钟功能
用发步骤流程图:
绘制Widget布局==》配置Widget的基本属性==》定义AppWidgetProvider==》提供Configuration Activity
课程目标:Android Widget实现一个基础的时钟功能
具体效果:1)可以自动更新时间;2)可以添加和删除时钟Widget
=========在地铁霍营站往东直门方向那一站有个有个比较大的长方形液晶表=========
1)绘制Widget布局:widget.xml,默认只支持部分控件
2)配置Widget的基本属性:
在res目录下创建xml文件夹,再在此xml文件夹下创建资源类型为AppWidget Provider的文件,比如叫做widgetconfig.xml,注意res目录下的文件名都必须小写!!!
在widgetconfig.xml中配置minWidth、minHeight、initialLayout、updatePeriodMillis(刷新时间间隔,默认至少30分钟),至此Widget基本属性配置完毕!!!
3)新建一个类,继承自AppWidgetProvider,并重写onDeleted(widget被从屏幕移除)、onDisabled(最后一个widget被从屏幕移除)、onEnabled(第一个widget被添加到屏幕上)、onReceive、onUpdate(widget被刷新)方法。
然后!!!定义一个类,继承自Service,当第一个widget被添加到屏幕上时(AppWidgetProvider的onEnabled方法)启动此服务,该Service里面执行更新时间的操作。注意Service乃四大组件之一,需要注册
当最后一个widget被从屏幕移除时(AppWidgetProvider的onDisabled方法)停止此服务。
启动自定义服务代码:context.startService(new Intent(context, TimerService.class));
停止自定义服务代码:context.stopService(new Intent(context, TimerService.class));
@Override public void onCreate(){ super.onCreate(); timer = new Timer(); timer.schedule( new TimerTask(){ @Override public void run(){ updateViews(); } },0,1000); }注意在自定义Service的onDestroy回调方法中将timer置为null,以停止倒计时
private void updateViews(){ String time = sdf.format(new Date()); RemoteViews rv = new RemoteViews(getPackageName(), R.layout.widget); rv.setTextViewText(R.id.tv, time); AppWidgetManager manager = AppWidgetManager.getInstance(getApplicationContext()); ComponentName cn = new ComponentName(getApplicationContext(), WidgetProvider.class); manager.updateAppWidget(cn, rv); }
</pre><pre name="code" class="java">最后,AndroidManifest.xml文件中还有一些细节配置,此处省略。
相关文章推荐
- android 5.1预置apk
- Android 启动Activity的方式
- Android的通讯员——notification
- Android笔记---TableLayout表格布局
- android-studio 安装使用
- Android笔记---RelativeLayout相对布局
- Android Fragment 真正的完全解析
- android简单实例-----------------使用SQLiteOpenHelper以及SQLiteDatabase
- 第7章 Android动画深入浅析
- android变色状态栏
- 有了Font Awesome,再也不担心没图标用了----Font Awesome字体图标在android中的使用
- android-代码修改TextView中部分某段文字的颜色
- android.support.v4.widget.DrawerLayout使用
- Android中Word转Html
- Android高效加载大图、多图解决方案,有效避免程序OOM
- Android px、dp、sp之间相互转换
- Android事件分发机制完全解析,带你从源码的角度彻底理解(下)
- android ems具体意义?
- android:QQ多种侧滑菜单的实现
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)