当前位置:首页 » 安卓系统 » androidwidget开发

androidwidget开发

发布时间: 2022-10-30 12:25:29

① 求助各位高手一个android上widget开发的问题!!卸载了程序,桌面上就显示说载入窗口小部件时出错……

卸载应用没删除是launcher 的问题,和widget 本身没什么问题。桌面没删除掉是因为launcher 的数据库中的你这个快捷方式还存在。

② android开发:不同的控件响应不同的点击事件在appwidget中怎么写

一个appwidget(桌面小插件)中包括两个控件(一个button,一个Textview),现要求不同的控件响应不同的点击事件,如点击Textview则弹出文本框可以进行编辑(如加入城市),点击BUTTON则刷新textview里的内容(如刷新textview中城市的天气)这个在响应的页面做控件的监听点击事件啊,很简单的。

③ 安卓开发:activity向widget传递2个文本,widget收到文本更新widget

(1)创建一个类,让其继承类 AppWidgetProvider,在 AppWidgetProvider 类 中有许多的方法,例如 onDelete(Context, int[]),onEnable(Context)等等, 一般情况下我们纸需要重写 onUpdate(Context, AppWidgetManager, int[])这 个方法就可以了,这个方法是当触发器更新widget时候执行的操作。 (2)在项目的 AndroidMenifest.xml 文件中添加一个 receiver 标签,让其指向 前面创建的 AppWidgetProvider 子类,内容如下:

  1. 4.5.6.7.9.



intent-filter 中过滤了 APPWIDGET_UPDATE 事件,这个事件是由系统触发的更 新事件,每个widget必须包含这个事件;meta-data 标签描述的是widget的配 置文件指向,该文件描述了widget的一些基本信息。 (3)编写widget的 provider 文件信息,本例中该文件名叫做widget_setting.xml,开发者可以随便取名,只要在 AndroidMenifest.xml 中写 正确就行。

1.2.<appwidget-provider 3.="" xmlns:android="http://schemas.android.com/apk/res/android" 4.="" android:minwidth="100dp"

5. android:minHeight="100dp" 6. android:initialLayout="@layout/main" 7. android:updatePeriodMillis="1000" > 8.


minWidth 和 minHeight 是widget的最小宽度和高度,这个值是一个参考值,系 统会根据实际情况进行改 变,initialLayout 属性指明了widget的视图布局文 件,updatePeriodMillis 属性是widget每隔多久更新一次的时 间, 单位为毫秒。 (4)接下来就是界面布局,在这个示例中只需要一个 TextView 控件就可以,代 码如下:

  1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.



如果没能解释明白 可以 ,到我群里讨论 look at my n a m e

④ widget机制

android中的widget是非常有意思的一个功能,widget不是运行在自己的进程中,通常是运行在桌面、锁屏等应用上,如何理解跨进程通信并更新widget界面,是理解widget的关键。

widget核心是一个广播接收器, AppWidgetProvider ,它有几个核心的回调函数。

根据实际需要,监听对应事件,实现相应的方法,在相应接口中更新widget界面。

widget必须在androidmenifest.xml文件中配置插件信息,以便包管理服务识别。

widget的初始配置文件如下,需要指定插件的最小宽高以及其它可选项,刷新频率,默认效果图片等等。

widget的具体开发如上,但到底是如何影响到桌面显示,它们的包名不一样,进程也不一样。它们是如何进行跨进程通信。在理解widget之前,必须要理解android中的remoteviews是如何工作的。

remoteviews,顾名思义是远程view,但它不是一个真正的view,因为真正的view是无法跨进程通信的,remoteviews实现了parcelable接口,可以实现跨进程通信,可以将remoteviews理解为一个view的描述文件,其内部维护了一个action列表,每个action记录了用户调用的方法名,参数,最终实现反射调用,实现用户设置的ui效果。

widget应用维护着一个remoteviews,当widget需要更新时,必须通过widget服务刷新,以便通知桌面或锁屏实现界面更新。

逻辑调用时序图如上所示。AppWidgetHost有一个实现了IAppWidgetHost的callback内部对象,这样能就通过aidl方式实现跨进程通信了。具体调用如上,widget服务跨进程调用到widgethost当中,完成widgethostview的更新,这样桌面就实现了界面刷新。因为桌面在初始化的时候会将widgethostview添加到界面上。

widget机制,欢迎交流补充。

⑤ Android开发如何获得第三方应用Widget的包名和类名

最近在做Android的平板的开发,想在桌面上预置一些第三方应用的Widget,在桌面预置Widget的方法就是要获得应用的包名和类名。 桌面预置widget的方法 在Launcher的配置文件 res/xml/default_workspace.xml中添加如下的代码:<appwidget launcher:packageName="com.google.android.apps.genie.geniewidget" //预置应用的包名 launcher:className="com.google.android.apps.genie.geniewidget.miniwidget.MiniWidgetProvider" //预置应用的Provider的类名,不是Activity的类名 launcher:screen="1"//在第几屏0为第一屏,launcher:x="0"//x坐标launcher:y="0"//y坐标 launcher:spanX="4"//x方向占几个单元格 launcher:spanY="1"///y方向占几个单元格 通过logcat有时可以找到应用的包名和Provider类名,此方法不可取,容易出错。系统的widget可以通过查找相关的源码找到对应的包名和Provider的类名,但是第三方应用看不到源码,但是也可以通过反编译第三方应用,获得相应的Maifest.xml文件,找到对应的包名和Provider类名,但是此方法比较繁琐。 可以通过在Launcher中添加如下代码,可以将系统中所安装的所有 的widget的信息打印出来: 在Launcher.java中的onCreate方法中添加下面的代码: List<=mAppWidgetManager.getInstalledProviders();finalintproviderCount=providers.size();for(inti=0;i<providerCount;i++){ ComponentNameprovider=providers.get(i).provider;Log.i("xxx", "packagename:" +provider.getPackageName()+ "classname:" +provider.getClassName());}新编译Launcher,把Launcher push进去之后,执行 adb logcat -s xxx,就可以看到打印出来的Log信息,包名和Provider了类名。 桌面预置shortcut的方法: 在Launcher的配置文件 res/xml/default_workspace.xml中添加如下的代码:<favorites

⑥ 我在开发Android的widget时,如果在widget中加入一个按钮。点击这个按钮如何启动主程序

创建一个Intent其中的class就是主程序的intent,,然后将intent放入到创建的PendingIntent中,你的那个button就是RemoteViews, 通过 RemoteViews.setOnClickPendingIntent(R.id.XX, pendingIntent);就可以了。网上有很多例子,楼主去看看。

⑦ androidwidget有用吗

1.身材微:它们一般都很小,在终端上嵌入非常方便,运行快速。
2.形式多:Widget可以以多种形式呈现出来,幻灯秀、视频、地图、新闻、小游戏……
3.功能巨:别看它们小,却服务周到,它可以为你报告新闻、帮你买东西、列出你最喜欢的乐队,还有你最近看的视频。另外,它还是一个殷勤的管家,你不必亲自去Flickr或者天气预报网站,Widget会将信息主动带给你。
4.姿容丽:它们可以称得上玉面飞龙、以色服人。只要你愿意,你可以把它变成任何你想要得样子。它的出现,无异于一枚“桌面炸弹”,狭窄而单调的IE窗口将被更为广阔和绚丽的桌面空间所取代。
5.个性化:Widget更像一个属于我们每个人的魔方,任由用户聚合。你可以根据自己喜好,将多个Widget,随心所欲的去精心组装你的网络世界。通过Widget,可以用户把一切在“网”中的内容打乱重来,并按照用户希望看到的样子重新排列组合一个属于自己的互联网。比如说一个由微件搭建个人空间,可以包括来自新浪的体育新闻,来自论坛的一个板块,来自权威财经网站的一则随时更新的股票信息 ——这些以往需要用户同时分别进入几个网站才能看到的信息,现在由一个个微件将其转变为用户个人空间的一部分,从而可以直接在同一个页面中并存。传统互联网访问方式处于分裂状态的后Web2.0时期,多样性、炫酷且更具个性化的Widget流行,或许能引领一个新的潮流。
6.易制作:制作 Widget 部件并不复杂,只需要熟悉三方面的知识:图像处理、HTML/XML、java,就可以按照开发站点里的教程做出漂亮的部件来。Widget能够流行的一个要点在于开放制作,UGC应用带来爆炸式地增长。
那么,什么是android widget呢?
在Android 1.5 SDK preview中,我们看到了一系列功能和API上的变化变化,包括软键盘、桌面Widget和Live Folder API、视频录制API,蓝牙功能升级等,Google近来对于这些全新功能的解析使得Android开发者blog变得异常活跃。上周,Jeff Sharkey就有一篇对于Android桌面widget和AppWidget框架的简介,以“Word of the day”的一个例子讲述了桌面Widget的运作机制。昨天他又在个人blog上放出了一个天气预报Widget的例子,事实上这已经是一个真正实用的程序了。它每天更新4次天气预报,我们可以添加多个Widget来关注多个城市的天气情况,另外,点击Widget后我们还可以看到今后几天的详细预报。
这让我想起了HTC Source的Nick Gray上周的一篇文章Android Widgets, Unlimited Potential中提到的几类可能会大受欢迎的Android桌面Widget。
Android本身已经自带了时钟、音乐播放器、相框和Google搜索4个Widget程序,不过这并不能阻止大家开发自己更加美观,功能更丰富的版本。另外,微博客、RSS订阅、股市信息、天气预报这些Widget也都有流行的可能。
微博客Widget:Twidroid是Android上迄今为止最棒的Twitter客户端,大家显然都期待着它会推出支持桌面Widget的版本,另外像国内比较受欢迎的饭否、嘀咕、叽歪等应该也会有类似的Widget推出。对于一个微博客类的Widget来说,有两个方面是必不可少的,一是用来发布消息,另一个则是用来浏览。
RSS订阅Widget: 尽管微博客(尤其是Twitter)已经完全盖过来RSS订阅的风头,越来越多的人用Twitter来跟踪站点的更新,不过RSS订阅也并非完全没有了市场,像分类订阅这样的功能还是需要RSS来帮忙,另外站点管理员也未必会在Twitter上发布所有的更新。
股市信息Widget:对于炒股的人来说,大概没有什么能比在手机桌面上放上几个所关注股票的实时股价更有运筹帷幄的感觉了吧。
天气预报Widget:对于我这样成天窝在办公室或者家里的人来说,有一个Widget能够让我了解当前的天气和近1、2天的天气是非常有用的,这大概会大大减少我下了楼又跑回去拿雨伞的几率。如果能加上像TouchFLO 3D中那样的UI效果,当然就更酷了。
这只是我现在想到的一些Widget,得益于Android 1.5为我们提供的Widget API为我们的手机桌面带来的无限的可能,我们的手机桌面无疑将会更有趣。
对国内G1的用户,如果想体验Android 1.5的桌面Widget,可以看看Haykuro的blog,他正在为制作G1可用的Android 1.5 ROM而努力。另外,T-Mobile已经计划在五月向德国的T-Mobile G1用户推送1.5的更新了,所以即使到时候没有官方的G1简体中文1.5 ROM,相信Haykuro的 1.5 ROM for G1也能非常接近官方的成熟度。
Widget应用目前在Android手机上得到了广泛的应用。由于其方便小巧,所以得到了很多的应用,像天气,微博,信息,歌曲,时间等等。
关于android Wpp widget:
应用程序窗口小部件(Widget)是微小的应用程序视图,可以被嵌入到其它应用程序中(比如桌面)并接收周期性的更新。你可以通过一个App Widget provider来发布一个Widget。可以容纳其它App Widget的应用程序组件被称为App Widget宿主。下面的截屏显示了一个音乐App Widget。

⑧ 如何开发android 桌面widget 源代码

参考如下内容:
AppWidgetProvider类
AppWidgetProvider 继承自 BroadcastReceiver,它能接收 widget 相关的广播,例如 widget 的更新、删除、开启和禁用等。
AppWidgetProvider中的广播处理函数如下:
onUpdate()
当 widget 更新时被执行。同样,当用户首次添加 widget 时,onUpdate() 也会被调用,这样 widget 就能进行必要的设置工作(如果需要的话) 。但是,如果定义了 widget 的 configure属性(即android:config,后面会介绍),那么当用户首次添加 widget 时,onUpdate()不会被调用;之后更新 widget 时,onUpdate才会被调用。
onAppWidgetOptionsChanged()
当 widget 被初次添加 或者 当 widget 的大小被改变时,执行onAppWidgetOptionsChanged()。你可以在该函数中,根据 widget 的大小来显示/隐藏某些内容。可以通过 getAppWidgetOptions() 来返回 Bundle 对象以读取 widget 的大小信息,Bundle中包括以下信息:
OPTION_APPWIDGET_MIN_WIDTH – 包含 widget 当前宽度的下限,以dp为单位。
OPTION_APPWIDGET_MIN_HEIGHT – 包含 widget 当前高度的下限,以dp为单位。
OPTION_APPWIDGET_MAX_WIDTH – 包含 widget 当前宽度的上限,以dp为单位。
OPTION_APPWIDGET_MAX_HEIGHT – 包含 widget 当前高度的上限,以dp为单位。
onAppWidgetOptionsChanged() 是 Android 4.1 引入的。
onDeleted(Context, int[])
当 widget 被删除时被触发。
onEnabled(Context)
当第1个 widget 的实例被创建时触发。也就是说,如果用户对同一个 widget 增加了两次(两个实例),那么onEnabled()只会在第一次增加widget时触发。
onDisabled(Context)
当最后1个 widget 的实例被删除时触发。
onReceive(Context, Intent)
接收到任意广播时触发,并且会在上述的方法之前被调用。
总结,AppWidgetProvider 继承于 BroadcastReceiver。实际上,App Widge中的onUpdate()、onEnabled()、onDisabled()等方法都是在 onReceive()中调用的,是onReceive()对特定事情的响应函数。

⑨ android开发中,如何使appWidget在被点击的时候产生对话框

不依赖可能是不行, 但是你可以把你的activity弄出dialog 在manifest里面配置 整个activity就是以个dialog。
在activity下设置这个属性就可以了
android:theme="@android:style/Theme.Dialog

⑩ Android安卓开发如何点击自己的widget启动百度地图

调用自带浏览器跳转:Uriuri=Uri.parse("");Intentit=newIntent(Intent.ACTION_VIEW,uri);startActivity(it);如果用WebView加载:WebView.loadUrl("");

热点内容
云服务器可以通过远程打游戏吗 发布:2025-03-06 17:16:43 浏览:913
cs新版本要什么配置 发布:2025-03-06 17:15:22 浏览:223
用户登录密码设置规则是什么 发布:2025-03-06 17:04:40 浏览:749
海外移动账号访问 发布:2025-03-06 17:00:09 浏览:814
samba在服务器搭建 发布:2025-03-06 16:53:35 浏览:170
图片管理数据库 发布:2025-03-06 16:51:05 浏览:980
用旧电脑搭建家用服务器 发布:2025-03-06 16:48:54 浏览:251
台式电脑如何与安卓手机连接蓝牙 发布:2025-03-06 16:48:47 浏览:816
奇博源码 发布:2025-03-06 16:47:43 浏览:986
原油存储罐 发布:2025-03-06 16:12:21 浏览:55