Android widget 用法总结
来源:互联网 发布:sql loader 704 编辑:程序博客网 时间:2024/06/07 19:29
Android widget 用法总结
(2010-12-01 20:52:23)转载▼
标签:
最近做了一个widget,功能跟android自带的Picture frame功能相似,唯一不同的是,Pictureframe是从SDCard中取得图片,而我做的这个widget所找的图片是从GooglePicasa上面找,具体操作不是写本文的目的。在这里,我就对widget的用法作一个总结,算是自己记的笔记吧。大家可以与我交流:leehong2005@163.com,由于代码太多,想要代码的可以给我发邮件。android
widget
实例
分类:Android直接先看看效果图:
选择 Picture Frame
从SDCard中找图片,它会一个一个地显示出来。
选择要剪切的图片部分
点击 Save 按钮后的界面
在上一界面上,点击 Save 按钮,就会把选择的图片加入到widget中。
当按 Ctrl + F11切换屏幕显示方式后,得到的界面。
这个跟android自带的Pictureframe功能就是一样的,唯一的就是界面上有些差别,实现上也有些差别,我这个更加简单,系统的那个Pictureframe功能很多。
1,widget可以有config,也可以没有,config其实就是一个activity,当运行widget时,就会最先启动这个config。
2,最重要的就是要实现AppWidgetProvider这个类,这个类其实是一个BroadcastReceiver,能接受一些系统发过来的消息等,它有几个方法,在此说明一下:
public void onReceive(Context context, Intent intent)
这个函数里面会调用相应的update, delete, enable,disabled这些方法,你可以在这个方法里处理自定义的消息。
public void onUpdate(Context context, AppWidgetManagerappWidgetManager, int[] appWidgetIds)
当widget要更新时调用,一般在这个函数里设置widget view的数据,如果设置文本值,图片等。
public void onDeleted(Context context, int[] appWidgetIds)
当一个widget删除时,就会调用这个函数。
public void onEnabled(Context context)
如果第一次加widget,就会调用这个函数,如果android系统重启时也会调用这个方法。
public void onDisabled(Context context)
当最后一个widget被删除后,就会调用这个方法,可以在这个函数里进行一些数据清除等。
3,widget一般要每次把数据结存起来,可以存到数据库中,也可以存到sharepreference里面,因为在android重启后,它要能正确加载数据。
4,widget的处理流程(有config)
1)怎么启动config,也就是说,怎么说这个widget与这个config相关联?
2)config结束后,怎么把数据更新到widget里面?
首先,应该在res/xml新建一个appwidget-provider的.xml文件。这个文件就指定了这个widget的一些属性:
<appwidget-providerxmlns:android="http://schemas.android.com/apk/res/android"
</appwidget-provider>
这个minHeight和minWidth有一个算法,公式是 cells * 74
上面红色标明的就是指定它的config。
其次,在config(是一个activity)里的onCreate里面,先要得到widget的id
这个id后在后面用到。
在结束这个config时,要把这个id设置到intent里
写得有点麻烦,我直接放代码了吧,如果大家有什么不明白的,可以给我发邮件,我之前写了几个widget,基本上对widget还算明白。
-------------------------------------------------------------------------------------------------------------
PictureFrameProvider.java
public class PictureFrameProvider extends AppWidgetProvider
{