ITPub博客

首页 > IT职业 > IT生活 > android widget 开发实例 : 桌面便签程序的实现详解和源

android widget 开发实例 : 桌面便签程序的实现详解和源

IT生活 作者:hahadelphi 时间:2021-09-09 09:18:44 0 删除 编辑

原文地址为:android widget 开发实例 : 桌面便签程序的实现详解和源码 (上)

如有错漏请不吝拍砖指正,转载请注明出处,非常感谢

 


桌面便签软件是android上常用软件的一种,比如比较早的Sticky Note,就曾非常流行,

Sticky Note的介绍可以参见 http://www.tompda.com/c/article/11778/ 

 

而实际上使用android平台对widget开发的支持,桌面便签类软件是非常易于开发的。

本文通过逐步实现一个简单的桌面便签软件,和大家分享进行widget开发的过程和方法。

 


http://dryicons.com/free-icons/preview/sketchy-paper-icons/ 打包下载。

(  注意下载下来的包中的文件名可能和我写的程序中的命名有差异,请注意自行调整。)

 

c. 新增widget时的配置Activity的实现(可选)

android平台为widget提供一个配置界面的功能,我们可以自定义一个Activity,

在widget参数配置文件中配置好相关参数后,此Activity会在用户新增widget时自动调用。

 

一般来说,这个配置界面的作用是用户新建widget时,让用户配置widget的一些属性,比如颜色、大小等等。

但是在我们的这个示例程序中,我们用它来当做创建便签的地方!

 

不过本节只是先实现一个原型程序,所以暂时不做处理,我们只是新建一个Activity即可。

新建名为MyNoteConf的Activity,重写onCreate方法,在OnCreate方法中,

由于这个Activity是由系统在新增widget时自动调用的,

所以我们可以用getIntent获取到传入的widgetId。可以判断其是否是一个有效的widgetId,

 

最后我们必须返回一个RESULT_OK的Intent,并结束当前Activity,系统才会认为配置成功,在桌面上放置这个widget。

如果返回RESULT_CANCELED,系统会认为配置失败,终止widget的创建过程。

 

编写好的MyNoteConf的代码如下:

package com.silenceburn; import android.app.Activity; import android.appwidget.AppWidgetManager; import android.content.Intent; import android.os.Bundle; import android.util.Log; public class MyNoteConf extends Activity { int mAppWidgetId; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); Log.i("myLog"," on WidgetConf ... "); setResult(RESULT_CANCELED); // Find the widget id from the intent. Intent intent = getIntent(); Bundle extras = intent.getExtras(); if (extras != null) { mAppWidgetId = extras.getInt(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); } // If they gave us an intent without the widget id, just bail. if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) { finish(); } // return OK Intent resultValue = new Intent(); resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId); setResult(RESULT_OK, resultValue); finish(); } }

 

d. widget 参数配置文件

最后我们需要编写一个widget参数配置文件,将布局文件、配置Activity关联起来。

我们在res下新建目录xml,在xml目录下新增文件 my_note_widget.xml ,编写如下:

其中 minWidth minHeight 用来指定widget的大小,如果我们只占用一个格子,也就是俗称的1X1,

那么72dp的长宽是android平台推荐的一个最佳实践值。

然后用 initialLayout 参数关联了我们编写好的 layout 文件,

用 configure 参数关联了我们编写好的配置用Activity:MyNoteConf,

此外还有一个参数 updatePeriodMills 指定widget的刷新周期,

从省电角度考虑,一般都把此值设置的比较大,如果一定要对widget做周期性的事情,可以使用AlarmManager。

 

至此所有widget的要素都已经准备好,我们运行一下来看看吧。

 


android widget 开发实例 : 桌面便签程序的实现详解和源码 (下)

地址是:http://blog.csdn.net/silenceburn/archive/2010/12/23/6094705.aspx

 


转载请注明本文地址:android widget 开发实例 : 桌面便签程序的实现详解和源码 (上)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2471/viewspace-2809409/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-09-01

  • 博文量
    78
  • 访问量
    8404