1.Widget设计步骤
需要修改三个XML,一个class:
1)第一个xml是布局XML文件(如:main.xml),是这个widget的。一般来说如果用这个部件显示时间,那就只在这个布局XML中声明一个textview就OK了。
2)第二个xml是widget_provider.xml,主要是用于声明一个appwidget的。其中,Layout就是指定上面那个main.xml。
3)第三个xml是AndroidManifest.xml,注册broadcastReceiver信息。
4)最后那个class用于做一些业务逻辑操作。让其继承类AppWidgetProvider。AppWidgetProvider中有许多方法,一般情况下我们只是覆写onUpdate(Context,AppWidgetManager,int[])方法。
2.代码案例
1)main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tvCurrTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
android:textColor="@color/black" />
</LinearLayout>
2)hello_widget_provider.xml
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:initialLayout="@layout/main"
android:minHeight="72dip"
android:minWidth="146dip" >
</appwidget-provider>
3)AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.woody.testWidget" android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".HelloWidgetProvider" android:label="@string/app_name"> <!-- HelloWidgetProvider为那个class(业务处理) -->
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> <!-- 指定了的 -->
</intent-filter>
<meta-data android:name="android.appwidget.provider"android:resource="@xml/hello_widget_provider" /> <!-- 为上面指定了的widget -->
</receiver>
</application>
</manifest>
4)HelloWidgetProvider.java
public class HelloWidgetProvider extends AppWidgetProvider { /** Called when the activity is first created. */
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
Timer timer = new Timer();
timer.scheduleAtFixedRate(new MyTime(context, appWidgetManager), 1, 1000);
}
public class MyTime extends TimerTask {
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;
DateFormat format = SimpleDateFormat.getTimeInstance(SimpleDateFormat.MEDIUM, Locale.getDefault()); public MyTime(Context context, AppWidgetManager appWidgetManager) {
this.appWidgetManager = appWidgetManager;
remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);
thisWidget = new ComponentName(context, HelloWidgetProvider.class);
} @Override
public void run() {
remoteViews.setTextViewText(R.id.tvCurrTime, "Time = " + format.format(new Date()));
appWidgetManager.updateAppWidget(thisWidget, remoteViews);
}
}
}
代码解释:RemoteView是用来描述一个垮进程显示的view,也就是说这个view是在另外一个进程显示的。它inflate于layout资源文件。并且提供了可以修改过view内容的一些简单基础的操作。
AppWidget---RemoteView,AppWidgetProvider是一个BrocaseReceiver,只是接受到Enable, Update,disale,delete这些message,而真正显示界面的是AppWidgetHostView(这是在Launcher里面实现的),这中间就是通过RemoteView来沟通。通过RemoteView告诉Launcher你想要的AppWidget是长什么样。
分享到:
相关推荐
标题中的“android axure widget包”指的是一个专门为Android平台设计的Axure组件集合,包含了一系列Android应用中常见的小部件(Widget)模板,如按钮、滑块、开关、列表视图等。这些组件设计得与Android原生UI风格...
在Android开发中,Widget是应用在主屏幕上的小型UI组件,它们可以提供用户与应用程序的交互,无需打开应用本身。ListView是一种常用的布局管理器,它允许用户在一个滚动列表中显示大量数据。本教程将深入探讨如何在...
Android应用源码之Android小部件AppWidget.zip项目安卓应用源码下载Android应用源码之Android小部件AppWidget.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术...
在Android平台上,App Widget是一种可以在用户主屏幕上展示小型交互式UI元素的应用程序组件。它们提供了一种无需打开应用即可与应用交互的方式,提高了用户体验。现在,让我们深入探讨一下"android app widget demo...
在Android平台上,Widget是应用程序可以向用户主屏幕添加的小型交互式组件,它们提供了一种在主屏幕上展示信息和执行简单操作的方式。本主题聚焦于一个特定类型的Widget——时钟Widget,通过分析“android时钟widget...
Android应用源码之android Widget小组件开发.zip项目安卓应用源码下载Android应用源码之android Widget小组件开发.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目...
在Android平台上,Widget是应用程序的一种轻量级交互方式,它可以直接在用户的主屏幕上显示和操作,为用户提供便捷的功能入口。本示例中的“android的widget桌面开关例子”着重于创建一个能够在桌面上显示并控制2G和...
在Android平台上,AppWidget是Android系统提供的一种小部件功能,允许开发者创建可以在用户主屏幕上显示的小应用程序。AppWidgets虽然小巧,但能为用户提供便捷的功能访问,例如天气预报、音乐播放控制等。本教程将...
Android App Widget是Android系统提供的一种轻量级的UI组件,允许开发者在用户的主屏幕上放置一些交互式的快捷方式或小部件,提供类似于桌面小工具的功能。这些小部件可以显示实时信息,如天气、日历事件、音乐播放...
Android AppWidget是Android系统提供的一种桌面小部件功能,允许开发者创建可以放置在用户主屏幕上的小型应用程序。这些小部件不需要用户直接启动,而是持续显示在屏幕上,为用户提供快速访问或控制应用的功能。在这...
在Android开发中,AppWidget是桌面小部件,它允许开发者将应用程序的功能直接集成到用户的主屏幕上,无需打开应用。在本案例中,我们探讨的是如何在AppWidget中使用ListView,这是一个增强用户交互的方式,使小部件...
在Android开发中,AppWidget是桌面小部件,它允许用户在主屏幕上与应用程序进行交互,而无需实际打开应用。在本篇博文中,我们将深入探讨如何在AppWidget中启动一个新的Activity,这通常是为了提供更丰富的用户体验...
在Android开发中,Widget是应用程序在用户主屏幕上的一种表现形式,它允许开发者为用户提供轻量级的交互体验,即便在应用程序未打开时也能提供服务。本篇将详细讲解"android widget"这一主题,主要基于 mars 老师的 ...
本资料包"Android应用源码之android Widget小组件开发.zip"提供了一套完整的源代码示例,帮助开发者深入理解和实践Android Widget的创建过程。以下是对这个主题的详细讲解: 1. **Android Widget概述** Android ...
在Android平台上,AppWidget是能够将小部件添加到用户主屏幕上的迷你应用程序,它们提供了一种无需打开完整应用即可展示信息或执行简单操作的方式。本文将深入探讨Android AppWidget的第四部分,主要关注如何更新App...
在Android平台上,Widget是应用程序的一种特殊形式,它们可以在用户的主屏幕上显示实时信息,提供快捷操作,无需打开完整的应用。这个“android 源码 android Widget开发案例 eclipse项目 直接导入”是一个很好的...
Android AppWidget是Android系统提供的一种轻量级组件,允许开发者在用户的主屏幕上创建小型应用程序,通常称为小部件或快捷方式。这些小部件不需要用户启动应用,就能直接在主屏幕上显示和交互,为用户提供便捷的...
`android.widget`命名空间包含了大量用于构建用户界面的基本UI组件,这些组件是Android应用程序开发中不可或缺的一部分。通过这些组件,开发者可以轻松地创建丰富的用户界面,并实现各种复杂的交互功能。 #### 关键...
AppWidget作为Android系统提供的一种小工具,允许开发者在用户的主屏幕上放置动态内容,如天气预报、新闻摘要或应用程序快捷方式等。然而,AppWidget的默认支持仅限于一组有限的视图类型,如`AnalogClock`, `Button`...
在Android平台上,Widgets是应用程序的一种扩展,它们提供了无需打开应用就能与之交互的功能。在这个“android时钟widget例子”中,开发者创建了一个自定义的时钟组件,以满足对透明时钟的需求。 首先,我们需要...