在此示例中,我们将看到如何在主屏幕上创建一个Android小部件,该小部件可以打开一个弹出对话框。 如您所知,Android Widgets是小型应用程序,基本上可以做两件事。 按下时启动新的活动,或显示在确定的时间间隔更新的信息。
1.简介
小部件使用RemoteViews
来显示其用户界面。 RemoteViews
可以由具有与原始应用程序相同权限的另一个进程执行。 这样,小部件将在其定义应用程序的权限下运行。 这是官方的Android文档的形式:” RemoteView
是一个类,描述了可以在另一个进程中显示的视图层次结构。 该层次结构是从布局资源文件扩展的,此类提供了一些基本操作来修改扩展的层次结构的内容。”
窗口小部件的用户界面由BroadcastReceiver
定义。 此BroadcastReceiver
将布局RemoteViews
为小部件的RemoteViews
。 然后, RemoteViews
将交付给Android,后者将更新主屏幕应用程序上的用户界面。
与“ Activities
相比,小部件的功能和样式有限。 因此,您可能需要采取一些变通办法来做更复杂的事情,就像我们想做的那样。 因此,推出从这里我们的小窗口弹出的对话是我们做什么:当点击小工具,我们简单地推出一个新的Activity
与android:theme="@android:style/Theme.Dialog"
中的配置属性集Activity
在AndroidManifest.xml
。
总结基本步骤,我们将:
- 创建一个Android小部件。
- 创建一个
Intent
,当它发送到BroadcastReceiver
它标志着新Activity的启动。 - 将
ClickListener
注册到窗口小部件。 因此,当窗口小部件被按下时,上面的Intent
将被发送到BroadcastReceiver
。 - 接收到此
Intent
,将启动一个新的Activity
,它看起来像一个弹出对话框。
让我们看看它是如何完成的。
2.创建一个新的Android小部件
对于本教程,我们将在Windows 64位平台上使用以下工具:
- JDK 1.7
- Eclipse 4.3开普勒
- Android SKD 4.3
2.1创建一个新的Android项目
打开Eclipse IDE,然后转到File-> New-> Project-> Android-> Android Application Project。
您必须在适当的文本字段中指定应用程序名称,项目名称和程序包名称,然后单击下一步。
在下一个窗口中取消选中“创建活动”选项,因为稍后我们将创建PopUpActivity
。
点击“完成”。
2.2为小部件定义自定义背景形状
转到软件包浏览器并打开/res/drawable-*
文件夹。
右键单击其中一个文件夹(我选择了/res/drawble-hdpi
)->新建->其他-> /res/drawble-hdpi
> Android XML文件