应用程序窗口小部件App Widgets
应用程序窗口小部件(Widget)是微小的应用程序视图,可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新。你可以通过一个App Widget provider来发布一个Widget。可以容纳其它App 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">
< src="" 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特性。这是可选的。
参见AppWidgetProviderInfo 类以获取更多可以被<appwidget-provider>元素接受的属性信息。
创建App Widget布局
你必须在XML中为你的App Widget定义一个初始布局并保存到项目的res/layout/ 目录下。你可以使用如下所列的视图对象来设计你的App Widget,但是在此之前,请先阅读并理解App Widget Design Guidelines.
如果你熟悉在XML中声明布局,那么创建这个App Widget布局是很简单的。但是,你必须意识到那个App Widget布局是基于RemoteViews, 这并不支持所有类型的布局或视图小部件。
一个RemoteViews对象(以及,相应的,一个App Widget)可以支持下面这个布局类:以及下面的小部件类:
·FrameLayout
·LinearLayout
·RelativeLayout
·AnalogClock
·Button
·Chronometer
·ImageButton
·ImageView
·ProgressBar
·TextView 不支持这些类的派生。
分享到:
相关推荐
Android小部件(AppWidget)是Android系统提供的一种特殊类型的用户界面组件,允许开发者在用户的主屏幕上添加可交互的微型应用程序视图。这个压缩包“Android应用源码之Android小部件AppWidget.zip”包含了一个用于...
在Android平台上,AppWidget是Android系统提供的一种小部件功能,允许开发者创建可以在用户主屏幕上显示的小应用程序。AppWidgets虽然小巧,但能为用户提供便捷的功能访问,例如天气预报、音乐播放控制等。本教程将...
在"appwidget"这个压缩包文件中,可能包含了示例代码和资源文件,供开发者学习如何实现上述功能。通过研究这些文件,你可以更好地理解App Widget的工作原理和实现细节,从而在自己的项目中创建出富有特色的桌面小...
Android AppWidget是Android系统提供的一种轻量级组件,允许开发者在用户的主屏幕上创建小型应用程序,通常称为小部件或快捷方式。这些小部件不需要用户启动应用,就能直接在主屏幕上显示和交互,为用户提供便捷的...
在Android平台上,AppWidget是应用程序可以提供的一种桌面小部件,让用户在主屏幕上获得快速的交互体验,无需打开完整的应用程序。这个“Android高级应用源码-Android小部件AppWidget.zip”包含了一个关于如何创建和...
在安卓平台上,AppWidget是Android系统提供的一种轻量级组件,允许开发者在用户的主屏幕上创建交互式的迷你应用程序,也就是我们通常所说的桌面小部件。这个压缩包"安卓Android源码——安卓Android小部件AppWidget....
AppWidget是Android系统提供的一种组件,它允许开发者在用户的主屏幕上创建自定义的小部件,无需用户启动应用程序。这种功能极大地增强了用户体验,使用户能够快速访问或控制应用的功能,而无需打开应用本身。本文将...
【AppWidget_FlashLight】是Android平台上的一种应用小部件,它允许用户在主屏幕上快捷启动或关闭设备的闪光灯功能,无需打开完整的应用程序。在Android系统中,AppWidget是可以通过小部件面板添加到主屏幕上的小型...
【AppWidget_DEMO】是一个关于Android App Widget的演示项目,由CSDN博主u012792686分享。App Widget是Android系统提供的一种小型应用组件,用户可以在主屏幕上添加,无需打开应用程序就能获取信息或执行简单操作。...
AppWidget是放置在手机屏幕的桌面小组件应用,如时钟、日历、天气等组件,与一般应用程序有所不同。一般应用虽也可以以图标的形式(快捷方式)放在桌面,但必须点击运行和查看;而AppWidget一般不须点击即直观呈现其...
AppWidget是Android系统提供的一种功能,它允许应用程序在用户的主屏幕上显示小部件,为用户提供快捷的功能入口或信息概览,而无需打开应用程序本身。在这个项目中,开发者模仿了"乐桌面四叶草"的设计,四叶草通常...
Android AppWidget是Android操作系统提供的一种服务,允许开发者创建可以在用户主屏幕上显示的小应用程序,通常称为桌面小工具。这些小工具不需用户启动,可以实时显示信息,为用户提供快速访问应用功能或查看信息的...
Android的AppWidget,又称桌面小部件,是一种能够让用户在手机或平板电脑的主屏幕上直接交互的迷你应用程序。它们提供了一种便捷的方式,让用户无需打开完整的应用程序就能访问常用功能,如查看时间、天气预报或者...
Android桌面Widget是Android应用组件之一,它类似于一个小应用程序,可以被放置在用户的主屏幕上,为用户提供快捷的操作或信息展示。它们通过AppWidgetProvider类与系统交互,并使用RemoteViews来更新其内容。 创建...
在Android平台上,Widget是应用程序的一种特殊形式,它可以在用户的主屏幕上提供快速访问的功能,比如快捷拨号。这个“Android Widget快捷拨号程序源码.zip”包含的是一套完整的源代码,用于开发一个能够帮助用户...
在Android平台上,Widget是应用程序的一种轻量级交互方式,它可以在用户的主屏幕上提供实时信息或者简单操作,无需打开完整应用。本课程设计的主题是“Android课程设计Widget电池插件”,旨在让学生掌握如何创建一个...
在Android系统中,Widget是应用程序与用户交互的一种独特方式,它能够在主屏幕上提供快速访问的功能,比如我们的主题——“Widget快捷拨号程序”。这个源码是一个实现简单快捷拨号功能的小型应用,用户可以通过在主...
在Android系统中,Widget是应用程序可以提供的一种桌面扩展功能,让用户可以直接在主屏幕上与应用进行交互,无需打开应用本身。Widget通常被设计成简洁、快速访问的形式,如天气预报、时钟、音乐播放控制等。本教程...
在Android平台上,Widget是一种轻量级的应用组件,它可以在用户的主屏幕上展示信息,提供快捷操作,无需用户打开完整的应用程序。Android Widget开发学习教程主要涵盖了如何创建和配置一个基本的Widget,包括以下几...