❶ 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】如何在自己的程序中添加appWidget
其实在android中提供了三个非常简单的类,应用这三个类我们可以将一个appWidget“表面上”,注意是“表面上”添加到你的应用中。代码如下: AppWidgetHost host = new AppWidgetHost(this, 1024);
int appWidgetId = host.allocateAppWidgetId();
AppWidgetManager mAppWidgetManager = AppWidgetManager.getInstance(this);
mAppwidgetProviderInfos = (ArrayList
) mAppWidgetManager.getInstalledProviders();
for (int i = 0; i < mAppwidgetProviderInfos.size(); i++){AppWidgetProviderInfo widgetInfo = mAppwidgetProviderInfos.get(i);
AbsoluteLayout.LayoutParams allp = new AbsoluteLayout.LayoutParams(100, 100, 0, 0);
abl.addView(hostView, allp);
稍微解释下,新建个AppWidgetHost,分配个appWidgetId,用AppWidgetManager得到一个AppWidgetProviderInfo,再用host建立AppWidgetHostView,最后设置下在layout中的位置,把它添加到layout上。
这样,一个表面上的就好了。不过问题也随之而来,这是个又困扰了我几天的问题,就是这个appWidget根本就是处于个disable的状态,即不更新,也无法响应broadcast。经过对于launcher,framework和网上的一些理解和查阅,终于找到了问题所在,而且是个相对来说比较恶心的问题。launcher中是这么做的,就是通过起一个
Intent pickIntent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK);
将appWidgetId 传入这个
pickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);再调用startActivityForResult(pickIntent, REQUEST_PICK_APPWIDGET);
来实现的,当然这个intent还要些必要的参数。这里就不说了,代码里自己看。
在onActivityResult里进行得到appWidgetId,AppWidgetProviderInfo,并建立个AppWidgetHostView,添加到layout上。
❸ android中如何在appwidget上实现动画效果
LayoutAnimation
或者你可以看看在360那些appwidget执行动画的时候是无法操作页面的而且这时候你按回退键他的widget是会消失之后再显示出来,那么是不是可以这样:
点击你的Widget跳转到一个透明的Activity 在这个Activity中有一个widget一样View的来执行动画
动画完成之后 finish掉这个activity
❹ Android桌面小部件AppWidget开发
在Android我们经常可以看到各种桌面小部件,比如时衫山钟、天气、音乐或带中播放器等等。我们可以使用AppWidgetProvider来实现小部件的开发。
开发一个桌面小部件的步骤:
在res/layout/下新建一个布局文件,名称和内容自定义,看你想把小工具做成什么样。需要注意的是系统默认的小工具布局中只支持以下这些标签,如果用了列表以外的标签,会导致小工具加载错误:
比如,我们创建了一个名为widget_layout.xml的布局文件:
定义小部件的配置信息需要在res目录下新建一个xml目录,然后在res/xml/目录下创建一个配置文件,配置文件名称随意。新建app_widget_provider_info.xml:
上面的参数意义很明确,initialLayout指小行拿部件的初始化布局,一般与最终布局相同;minHeight和minWidth定义了小部件的最小宽高,与小部件所占网格大小有关;previewImage可以指定在添加小部件时看到的预览图;updatePeriodMillis指定了小部件的自动更新周期,单位为毫秒。
其中minHeight和minWidth的定义可以参考官方文档: https://developer.android.com/guide/practices/ui_guidelines/widget_design.html#design
OK,小部件完成了,运行一下看看效果: