转载自:http://www.eoeandroid.com/thread-71208-1-1.html

应用程序窗口小部件App Widgets
  应用程序窗口小部件(Widget)是微小的应用程序视图,可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新。你可以通过一个App Widget provider来发布一个Widget。可以容纳其它App Widget的应用程序组件被称为App Widget宿主。

  基础知识The Basics

  为了创建一个App Widget,你需要下面这些:

  AppWidgetProviderInfo 对象

  描述一个App Widget元数据,比如App Widget的布局,更新频率,以及AppWidgetProvider 类。这应该在XML里定义。

  AppWidgetProvider 类的实现

  定义基本方法以允许你编程来和App Widget连接,这基于广播事件。通过它,当这个App Widget被更新,启用,禁用和删除的时候,你都将接收到广播通知。

  视图布局
  为这个App Widget定义初始布局,在XML中。
  另外,你可以实现一个App Widget配置活动。这是一个可选的活动Activity,当用户添加App Widget时加载并允许他在创建时来修改App Widget的设置。

  下面的章节描述了如何建立这些组件:
  在清单中声明一个应用小部件
  首先,在应用程序AndroidManifest.xml文件中声明AppWidgetProvider 类,比如:

Java代码:

< receiver android:name="ExampleAppWidgetProvider" >
< intent-filter>
< action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
< /intent-filter>
< meta-data
android:name="android.appwidget.provider"
android:resource="@xml/example_appwidget_info < src="http://hi.images.csdn.net/js/blog/tiny_mce/themes/advanced/langs/zh.js" type="text/javascript"> < srcsrc="http://hi.images.csdn.net/js/blog/tiny_mce/plugins/syntaxhl/langs/zh.js" type="text/javascript"> " />< /receiver>

< receiver>元素需要android:name属性,它指定了App Widget使用的AppWidgetProvider 。

  < intent-filter> 元素必须包括一个含有android:name属性的< action>元素。该元素指定AppWidgetProvider接受 ACTION_APPWIDGET_UPDATE 广播。这是唯一你必须显式声明的广播。当需要的时候,AppWidgetManager 会自动发送所有其他App Widget广播给AppWidgetProvider。

< meta-data> 元素指定了AppWidgetProviderInfo 资源并需要以下属性:
  
        android:name ? 指定元数据名称。
  android:resource ? 指定AppWidgetProviderInfo 资源路径。

   增加AppWidgetProviderInfo元数据
  AppWidgetProviderInfo定义一个App Widget的基本特性,比如最小布局尺寸,初始布局资源,刷新频率,以及(可选的)创建时加载的一个配置活动。使用单独的一个< appwidget-provider>元素在XML资源里定义AppWidgetProviderInfo 对象并保存到项目的res/xml/目录下。

Java代码:

< appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="294dp"
android:minHeight="72dp"
android:updatePeriodMillis="86400000"
android:initialLayout="@layout/example_appwidget"
android:configure="com.example.android.ExampleAppWidgetConfigure" >
< /appwidget-provider>

下面是< appwidget-provider>属性的总结:

  minWidth 和minHeight 属性的值指定了这个App Widget布局需要的最小区域。
  缺省的App Widgets所在窗口的桌面位置基于有确切高度和宽度的单元网格。如果App Widget的最小长宽和这些网格单元的尺寸不匹配,那么这个App Widget将收缩到最接近的单元尺寸。(参见App Widget Design Guidelines 以获取更多关于桌面单元尺寸的信息)

  因为桌面布局方向(由此,单元的尺寸)可以变化,按照拇指规则,你应该假设最坏情况单元尺寸是74像素高和宽。不过,你必须从最后的尺寸中减去2以把像素计算过程中产生的任何的整数舍入误差考虑在内。要找到像素密度无关的最小宽度和高度,使用这个公式:
   (number of cells * 74) - 2

遵循这个公式,你应该使用72dp为每一个单元高度,294dp为四个单元宽度。

updatePerdiodMillis 属性定义了App Widget框架调用onUpdate()方法来从AppWidgetProvider请求一次更新的频度。实际更新时间并不那么精确,而且我们建议更新频率越低越好-也许每小时不超过一次以节省电源。你也许还会允许用户在配置中调整这个频率-一些人可能想每15分钟一次股票报价,或者一天只要四次。

   initialLayout属性指向定义App Widget布局的资源。

   configure属性定义了Activity ,当用户添加App Widget时启动,以为他或她配置App Widget特性。这是可选的(阅读下面的Creating an App Widget Configuration Activity)。

  参见AppWidgetProviderInfo 类以获取更多可以被< appwidget-provider>元素接受的属性信息。

【Android】开发桌面小插件(一)相关推荐

  1. 【Android】开发桌面小插件(二)

    转载自:http://www.eoeandroid.com/thread-71211-1-1.html 我们这一片是接着上一篇来继续进行讲解开发插件,那么我们现在就来继续的讲解App Widget布局 ...

  2. 【Android】开发桌面小插件(三)

    转载自:http://www.eoeandroid.com/thread-71213-1-1.html 这是我们这个小项目的最后一篇了,大家一定是非常期待的,那么我们就来看看这最后一篇的内容吧. 注意 ...

  3. Android开发工具---SQLiteManager插件

    Android开发工具---SQLiteManager插件 效果图如下: 平时在开发过程中查看数据库都要把数据库文件导出来,然后再用其他工具打开,SQLiteManager插件则给予我们一些便利,只需 ...

  4. Android开发桌面插件

    前提:公司应用需要开发插件,奈何我实在没有块的开发经验,查阅了一些资料,花了几天时间,完成了插件的开发. 开发桌面插件需要了解AppWidgetProvider,RemoteViewsService, ...

  5. android AppWidgetProvider开发桌面小工具

    什么是桌面小工具  就是你写好代码后 双指缩放桌面屏幕(三星手机出现小组件,华为出现窗口小工具)点击之后会出现你继承AppWidgetProvider所编写的界面 效果: 代码: /** * Impl ...

  6. 太强了,Python 开发桌面小工具,让代码替我们干重复的工作~

    作者 | Cherish 来源 | 杰哥的IT之旅 决定写这篇文章的初衷是来源于一位小伙伴的问题,关于"如何根据数据源用 Python 自动生成透视表",这个问题背后有个非常好的解 ...

  7. 太强了!Python 开发桌面小工具,让代码替我们干重复的工作!

    作者:Cherish 来源:https://www.jianshu.com/p/91128d442198 决定写这篇文章的初衷是来源于一位小伙伴的问题,关于"如何根据数据源用 Python ...

  8. Python 开发桌面小工具,让代码替我们干重复的工作!

    作者:Cherish 来源:https://www.jianshu.com/p/91128d442198 本文为读者投稿 决定写这篇文章的初衷是来源于一位小伙伴的问题,关于"如何根据数据源用 ...

  9. Android开发实用小工具三——面积转换工具

    文章目录 前言 一.效果展示 二.代码 主代码 总结 前言 面积转换工具的开发与实现. 一.效果展示 二.代码 准备工作和样式布局与我开发的另一个小工具(长度转换工具)所用一致,详情请看我上一篇文章. ...

最新文章

  1. linux 为什么有时用killall指令找不到要杀死的进程?(no process found)
  2. OpenCASCADE绘制测试线束:几何命令之曲面创建
  3. IO的几种分类(详细)
  4. IT行业经典面试题,121套面试题
  5. TreeView控件 1202
  6. XMind--思维导图
  7. 如何解决存在的1px问题?
  8. 华为手机使用应用沙盒动态修改imsi参数
  9. 烽火HG680-KA_310_免费升级刷机固件包及教程
  10. DRV_03_编写最简单的触摸屏驱动程序_基于QEMU
  11. 基于百度paddle的快递面单三段码识别
  12. A Retinex based GAN Pipeline to Utilize Paired and Unpaired Datasets for Enhancing Low Light Images
  13. Splinter学习--模拟攥写博客园随笔
  14. c# .net获取各国时间
  15. Random()类生成随机数详解
  16. Cannot access 'age' before initialization错误
  17. 迅雷创始人程浩:流量、资本红利已成过去式,中国互联网下一个十年属于……
  18. android手机图标 足球球星,盘点六大世界足坛球星logo,贝尔艺术感十足
  19. ESSENTIAL C++ 读书笔记
  20. 超详细的AD8031ARZ介绍,就在这里

热门文章

  1. 为什么感觉现在华为云比阿里云更受欢迎?
  2. 网络安全需要学什么?网络安全需要掌握哪些技能?
  3. 访问服务器共享文件夹报错,文件夹共享设置方法及排错集合
  4. Android音频改进设想及PulseAudio
  5. 【点云处理】基于欧式聚类的点云分割
  6. 代码随想录算法训练营day15 | 102. 二叉树的层序遍历、226. 翻转二叉树、101. 对称二叉树
  7. 单因素方差分析,卡方检验,充分条件必要条件
  8. 朋友圈红包照片,花钱看果照,技术不可耻谁看谁流氓?
  9. APP测试相关理论,积累一点是一点(面试向)
  10. 周末游记——安徽歙县,石潭景区