精华内容
下载资源
问答
  • Widget

    千次阅读 2012-07-12 13:57:31
    Web Widget,中文译名被...它的根本思想来源于代码复用,通常情况下,Widget的代码形式包含了DHTML,JavaScript以及Adobe Flash。 目录 简介作用以及批评Widget引擎Widget技术释义简介起源与发展 展开

    Web Widget,中文译名被称作是微件,是一小块可以在任意一个基于HTML的Web页面上执行的代码,它的表现形式可能是视频,地图,新闻,小游戏等等。它的根本思想来源于代码复用,通常情况下,Widget的代码形式包含了DHTML,JavaScript以及Adobe Flash。

    编辑本段简介

      Web Widget可以向一个基于HTML的Web页面上添加一些动态内容。它可能是点击计数器,实时股票信息以及航班信息等等。通常情况下,一个Widget的功能都是由第三方提供的代码实现的,而Web开发者,只需要将这些代码块嵌入自己的页面即可。其实,在万维网发展的早期,Web开发者就已经尝试在他们的页面中嵌入一些第三方开发的代码块,不过这些代码块早期的功能通常都是一些诸如链接计数,或者广告标识(en:Web banner)之类的。  Web Widget可以被视作是小型的可下载应用程序,不过这些应用程序都是运用一些Web技术来得以实现的,包括JavaScript,HTML以及CSS等。Web Widget通常都需要依赖一些公开的Web API。这些API可能是由浏览器公开,或者是由一些Widget引擎公开。

    编辑本段作用以及批评

      Web Widget允许Web开发者在他们的页面中集成任何第三方Web站点所提供的Widget代码,以便于在自己的网站中聚合各种各样的信息与资源。这样一来,原先网页浏览者可能必须要去好几个不同站点才能获取到的信息可以在一次页面访问中全部获取到。  基于Web Widget的特性,一些人认为,通过这一途径,站点的拥有者可以借助Widget提升自己站点的用户体验,而营销人员也可借助Widget在用户不需要跳转当前页面的情况下也可以推广厂商自身的品牌与服务;但与此相反,另外一些人却认为Web Widget所带来的只是又一个商业上的泡沫而已,因为当用户在一个集成了多种Web Widget的个性化站点或者社交网站中(如Facebook)寻找乐趣时,他们是不太可能记住Widget中推广的品牌与产品的。  另外,由于任何Widget代码都可以被嵌入到Web页面中,因此一些带有恶意代码的Widget将可能给页面浏览者带来麻烦。比如Facebook上曾经有一个名为"Secret Crush"的Widget,它会诱导用户去自动下载广告软件

    编辑本段Widget引擎

      主条目:Widget引擎  微件管理系统提供了一个基于Web页面的用于对微件进行管理的方法,通常是一个Blog或者是一个社交网站的Home page。很多Blog系统直接以插件的形式提供一个内嵌的微件管理工具。用户可以借此从不同的Widget开发商那里获得各种各样的微件,并将它们运用于自己的页面之上。

    编辑本段Widget技术

      Widget技术_概念(1)  1.什么是widget技术  最直观就是vista上的钟可以随便拖动。其实widget技术就是通过xml,html,css显示UI,js作为脚本的一种应用描述技术。解析工具可以是浏览器也可以是其他应用。  2.目前有的widget  微软  vista上的widget.在手机上,微软通过ie也实现了widget的.  Google  google的gadget的是不通过浏览器,而是自己的加载应用  Opera  该widget是和浏览器绑定的。个人认为Opera的是做得最好的,但也最难。  Yahoo  很好玩的一个widget,可以去耍耍。  盛大  不是很了解,但希望中国公司能做好,能开源,能丰富。

    Widget技术_JS banding(2)

      1.jsbinding介绍  大家都知道js,当widget和js和在一起的时候,就需要js能控制本地的一些东西,比如说打开某个文件,修改系统时间。这就需要对js功能进行扩展。其实普通的浏览器也有这个需求,通过增加插件来支持更多的东西。  2.API的统一  既然无论是浏览器还是widget都需要对js进行扩展,不同的公司将按自己的浏览器或widget推出一套API。有没有人统一一下呀?听说有个公共组织打算统一bangding的API,但还有待时间。

    编辑本段释义

    词典解释

      名词 n.   1.(作附件用的)小机械  2.(指工厂)未定名的主要新产品  3.【美】【俚】装饰物  4.【电脑】专用界面工具集

    网络释义

      1.构件  GTK术语表[中国电子技术论坛] -- P...  135 widget 构件   2.小部件  MS-DOS信息英汉对照 计算机英语强化|...  widget 小部件  3.小器具  英语新词汇与常用词汇的翻译(158) - ...  widget 小器具  Widget (建议中文译名:微件)

    编辑本段简介

      「Yahoo!Widget Engine」是一种基于JavaScript的应用程序平台,您必须先安装Widget引擎后才能使用各式各样的Widget工具。  Yahoo!Widget是由雅虎推出的免费并开放源码的桌面应用程序平台。它由Widget引擎和Widget工具两部分组成。能够极大的便利您的网络操作和完善您的桌面应用。Widget引擎提供了一个Ajax应用程序平台,在Windows和Mac OS X的操作系统环境下都可以使用。安装引擎后就能在此平台上运行各式各样的Widget工具了。

    编辑本段起源与发展

      1. Widget的这个创想来自一个叫做Rose的苹果电脑工程师。98年的一天,Rose在自己的苹果操作系统桌面玩一个可以更换皮肤的MP3播放器时忽发奇想:如果在我桌面上运行的所有工具都能够更换皮肤或外观,那将是一件很酷的事情,Rose的兴奋之情溢于言表,它给这个酷酷的玩意儿起了个名字叫“Konfabulator”。  2. Konfabulator是运行在用户电脑桌面上最炫的东西,就像一部老爷车一样有无数能够发挥功用并值得深入探讨的零部件,带有吸引人的神奇魅力。Rose从1999年到2001年之间,不断向自己身边的工程师宣传自己对于Konfabulator的看法和它的奇幻魔力,却没有人对它感兴趣。直到2002年的一天,Rose遇到了一个叫做Perry的工程师。两人拥有对于Konfabulator这件事情同样的构想,于是一拍即合。   3. 于是两人开始共同为了这个炫酷的玩意儿在深夜努力工作,他们开辟了一个和Konfabulator相关的网站向大家传播这个想法,并在论坛中征询网友的意见“到底什么才是真正的Konfabulator?”大家的说法是千奇百怪的,有人说它是一个运行在用户桌面的加热器,有人说它是桌面宠物,有人说它是张牙舞爪的机器人。但是没有人对于Konfabulator的描述是确切的。  4. 终于在2003年2月10日的深夜,Konfabulator1.0正式版在Rose和Perry的共同努力下正式发布了。它是运行在苹果操作系统之上的小工具,其中的主运行文件叫做Widget,在Rose头脑中酝酿了5年的想法终于第一次问世了。并且向所有人宣布Konfabulator是运行在用户桌面上最独一无二的工具,你希望它是什么样子,它就能按照你的想法而改变。   5. Konfabulator意想不到的快速在全美疯狂的蔓延着,Rose和Perry感到非常的吃惊,同时他们也认识到这将会成为Konfabulator发展历史上非常关键的一个时期,于是两个人都辞去了各自的工作,开始专注于Konfabulator这件事情。  6. 在2003年的7月Konfabulator1.5版本发布了,主运行文件Widget的开发变得风靡一时,越来越多的人参与其中,也因为如此Konfabulator更名为Widget。Widget在苹果操作系统中所表现出的热潮,使得Rose和Perry认为它应该有更广的应用领域。于是在接下的半年中Perry的一个朋友参与到开发Widget Windows平台版本的工作中来,但最开始的一些尝试都是失败的。   7. 不久之后Rose找到了一个自己的好朋友ED,ED是苹果电脑公司工作超过十年有着深厚资历的一名优秀的开发工程师。在和他沟通Windows平台下开发Widget的事情之后,ED认为Rose希望在Windows平台下运行Widget的想法有些不可理喻。Rose和Perry开始很失望,但令他们感到吃惊的是,两天以后ED居然拿出了一个Windows平台下运行的Widget原型。  8. 2004年的11月Widget1.8版本正式对外发布了,由此开始Widget进入了一个新的时代,成为了跨平台的产品。使用Windows和Mac操作系统的用户都可以使用和开发自己喜欢的Widget工具。当然这还仅仅只是一个开端。  9.2005年07月25日,雅虎收购插件引擎Konfabulator。 Konfabulator是基于mac osx和windows操作系统的免费的应用平台。但是在被计算机服务公司雅虎收购后,它被重新命名了。名字Konfabulator 随后恢复作为后台运行的服务引擎的名字。这个引擎使用java脚本运行环境和XML解析器来运行一些所谓插件的小应用程序。因此是插件引擎一类应用程序的一部分。   10.2006年8月22日,雅虎中国发布了其最新产品Widget中文版。 11.2006年6月,Google桌面4.0正式发布,其中集成了很多Google小工具(Google Gadgets)。   12.2005年下半年,Windows Vista上市,小工具第一次与消费者见面。一些评论家与Mac爱好者迅速地指出Windows边栏在形式及功能上与苹果公司的Dashboard以及Yahoo! Widget Engine(原为Konfabulator)相似。虽然现时有许多相似形式及功能的产品,边栏在Windows Vista开发期间(当时代号为Longhorn)已经存在。首个包含该功能的版本号于2002年9月发布,在Konfabulator或Dashboard两者发表之前。2009年,Windows 7发布,“Windows边栏”消失。小工具摆脱了边栏的束缚,在收缩模式下也可以在屏幕上自由移动。   13.2006年10月,诺基亚发布“维信”英文版,被看作其开拓移动互联网领域的第一步。2007年5月25日,“维信”在全球范围内的注册用户达到100万。当时英文版维信已集成诸如Wikipedia、Technorati、Digg和Flickr等网站;而维信中文版集成大众点评网、豆瓣和一些中国本地博客等很多中文网站的应用。2009年8月,维信在官网上发出了公告,决定停止维信服务。维信在中国开办了2年后,终于也退出了人们的视线。 14.2009年4月30日,官方1.5版本(Cupcake 纸杯蛋糕)的Android发布。主屏幕增加音乐播放器和相框widgets。   15.2010年10月,微软公司正式发布Windows Phone智能手机操作系统的第一个版本Windows Phone 7,加入了特有的动态磁贴(Live Tiles),尽管与Widget有着看似相似的信息传递功能,却有着不同的设计原理和理念。

    编辑本段特征

      widget具有哪些特征呢? 《网络整合营销兵器谱》一书中提出了以下几点   1.身材微:它们一般都很小,在终端上嵌入非常方便,运行快速。  2.形式多:Widget可以以多种形式呈现出来,幻灯秀、视频、地图、新闻、小游戏……  3.功能巨:别看它们小,却服务周到,它可以为你报告新闻、帮你买东西、列出你最喜欢的乐队,还有你最近看的视频。另外,它还是一个殷勤的管家,你不必亲自去Flickr或者天气预报网站,Widget会将信息主动带给你。  4.姿容丽:它们可以称得上玉面飞龙、以色服人。只要你愿意,你可以把它变成任何你想要得样子。它的出现,无异于一枚“桌面炸弹”,狭窄而单调的IE窗口将被更为广阔和绚丽的桌面空间所取代。  5.个性化:Widget更像一个属于我们每个人的魔方,任由用户聚合。你可以根据自己喜好,将多个Widget,随心所欲的去精心组装你的网络世界。通过Widget,可以用户把一切在“网”中的内容打乱重来,并按照用户希望看到的样子重新排列组合一个属于自己的互联网。比如说一个由微件搭建个人空间,可以包括来自新浪的体育新闻,来自论坛的一个板块,来自权威财经网站的一则随时更新的股票信息——这些以往需要用户同时分别进入几个网站才能看到的信息,现在由一个个微件将其转变为用户个人空间的一部分,从而可以直接在同一个页面中并存。传统互联网访问方式处于分裂状态的后Web2.0时期,多样性、炫酷且更具个性化的Widget流行,或许能引领一个新的潮流。  6.易制作:制作 Widget 部件并不复杂,只需要熟悉三方面的知识:图像处理、HTML/XML、java,就可以按照开发站点里的教程做出漂亮的部件来。Widget能够流行的一个要点在于开放制作,UGC应用带来爆炸式地增长。参考资料来源(《网络整合营销兵器谱》辽宁出版集团 刘东明 )

    编辑本段系统配置

      Yahoo!Widget工具在Windows和MacOS X上都可执行。 Windows:等级需为Windows 2000 Service Pack 3 或以上版本或Windows XP SP1或以上版本。 Macintosh:等级则需为Mac OS X 10.3 或以上版本。 内存需求为512MB以上,使用宽带网络不小于512k的计算机系统。

    编辑本段各种应用

      (1)电脑操作系统桌面 Widget:  Yahoo! Widget   Windows Vista侧边栏  Windows 7 的桌面小工具 也可以理解成为 Widget (小插件)。  Mac OS X 的 Widget 集合,相当美观、实用。  (2)智能手机操作系统桌面 Widget:  Iphone 的 iOS  Google 的 Android  (3)个性化首页Widgets  Netvibes  iGoogle  (4)博客Widgets  博客侧边栏(blogspot)   抓虾Widget  可挂在博客中的拍照Widget  Mugsho 是一款轻量级可以放置在自己博客中的拍照Widget,访客可通过它留下自己的模样。  Mugsho 是一款很有意思的小玩意儿,用户可以将Mugsho提供的Widget放置在自己的博客中,访客便可以直接通过它拍下自己的模样留给博客站长。除了简单的拍照功能以外,Mugsho Widget 本身还提供了部分图像渲染功能,访客可以在原照片的基础上进行较为简单滤镜处理。
    展开全文
  • widget

    千次阅读 2013-11-22 10:05:17
    通过修改 中的minWidth ...appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth= "250dip" android:minHeight= "40dip" android:updatePerio

     

    通过修改<appwidget-provider> 中的minWidth 和minHeight值,
     
    1. <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" 
    2.     android:minWidth"250dip" 
    3.     android:minHeight"40dip" 
    4.     android:updatePeriodMillis"86400000" 
    5.     android:initialLayout"@layout/test_widget" 
    6.     > 
    7. </appwidget-provider> 

     

    dp大小对应的cell 数如下表所示,4x1的widget的 android:minWidth= "250dip和 android:minHeight= "40dip"
     

    展开全文
  • Extjs Widget

    2015-12-23 19:12:28
    widget column是用一个widget 配置参数指定xtype,表示该widget或component属于column中的cell内容。当一个widget cell 描画的时候,会将widget或component描画这个cell里。 sample: 效果图 代码: var grid = new...

    widget column是用一个widget 配置参数指定xtype,表示该widget或component属于column中的cell内容。当一个widget cell 描画的时候,会将widget或component描画这个cell里。

    sample:

    效果图

    代码:

    var grid = new Ext.grid.Panel({
        title: 'Substation power monitor',
        width: 600,
        columns: [{
            text: 'Id',
            dataIndex: 'id',
            width: 120
        }, {
            text: 'Rating',
            dataIndex: 'maxCapacity',
            width: 80
        }, {
            text: 'Avg.',
            dataIndex: 'avg',
            width: 85,
            formatter: 'number("0.00")'
        }, {
            text: 'Max',
            dataIndex: 'max',
            width: 80
        }, {
            text: 'Instant',
            dataIndex: 'instant',
            width: 80
        }, {
            text: '%Capacity',
            width: 150,
    
            // This is our Widget column
    <strong>        xtype: 'widgetcolumn',
            dataIndex: 'capacityUsed',
    
            // This is the widget definition for each cell.
            // Its "value" setting is taken from the column's dataIndex
            widget: {
            xtype: 'progressbarwidget',
                textTpl: [
                    '{percent:number("0")}% capacity'
                ]
            }</strong>
        }],
        renderTo: document.body,
        disableSelection: true,
        store: {
           fields: [{
               name: 'id',
               type: 'string'
           }, {
               name: 'maxCapacity',
               type: 'int'
           }, {
               name: 'avg',
               type: 'int',
               calculate: function(data) {
                   // Make this depend upon the instant field being set which sets the sampleCount and total.
                   // Use subscript format to access the other pseudo fields which are set by the instant field's converter
                   return data.instant && data['total'] / data['sampleCount'];
               }
           }, {
               name: 'max',
               type: 'int',
               calculate: function(data) {
                   // This will be seen to depend on the "instant" field.
                   // Use subscript format to access this field's current value to avoid circular dependency error.
                   return (data['max'] || 0) < data.instant ? data.instant : data['max'];
               }
           }, {
               name: 'instant',
               type: 'int',
    
               // Upon every update of instantaneous power throughput,
               // update the sample count and total so that the max field can calculate itself
               convert: function(value, rec) {
                   rec.data.sampleCount = (rec.data.sampleCount || 0) + 1;
                   rec.data.total = (rec.data.total || 0) + value;
                   return value;
               },
              depends: []
           }, {
               name: 'capacityUsed',
               calculate: function(data) {
                   return data.instant / data.maxCapacity;
               }
           }],
           data: [{
               id: 'Substation A',
               maxCapacity: 1000,
               avg: 770,
               max: 950,
               instant: 685
           }, {
               id: 'Substation B',
               maxCapacity: 1000,
               avg: 819,
               max: 992,
               instant: 749
           }, {
               id: 'Substation C',
               maxCapacity: 1000,
               avg: 588,
                 max: 936,
               instant: 833
           }, {
               id: 'Substation D',
               maxCapacity: 1000,
               avg: 639,
               max: 917,
               instant: 825
           }]
       }
    });
    


     

    展开全文
  • App Widget

    千次阅读 2015-11-28 16:53:14
    1. 基本信息App Widget是一种可以被放在其他应用中(如Launcher)并接收周期性更新的应用视图。这些视图在UI上就表现为Widget,并且你可以同App Widget Provider一起发布。 要创建一个App Widget,你需要完成以下...

    1. 基本信息

    App Widget是一种可以被放在其他应用中(如Launcher)并接收周期性更新的应用视图。这些视图在UI上就表现为Widget,并且你可以同App Widget Provider一起发布。
    要创建一个App Widget,你需要完成以下步骤:

    • AppWidgetProviderInfo对象:它描述了App
      Widget的基本元素,比如说布局、更新频率、AppWidgetProvider类等。这些都是在xml文件中定义的。
    • 2.AppWidgetProvider类的实现:它定义了一些基本的方法以支持通过广播事件与App Widget交互。通过它,当App Widget被更新、启用、禁用以及删除时,你将收到相应的广播信息。
    • 3.View Layout:通过xml文件定义App Widget的初始视图。

    2. 添加App Widget布局

    另外,你还可以实现一个App Widget的配置Activity。当然,这不是强制的。
    要创建你的App Widget的初始布局,你可以使用以下View对象。
    创建布局不是很麻烦,重点是,你必须记住,这个布局是基于RemoteViews的,不是所有的布局类型与View都支持。
    一个RemoteViews对象可以支持以下布局类:

    FrameLayoutLinearLayoutRelativeLayout
    以及一下widget类
    AnalogClockButtonChronometerImageButton
    ImageViewProgressBarTextViewViewFlipper

    注:这些类的子类是不支持的。
    res/layout文件夹下创建widget.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:orientation="vertical"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent">
            <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
                    android:text="当前时间" android:textColor="@android:color/white" android:textSize="18sp" android:id="@+id/tv_weather"/>
    </LinearLayout>

    3. 添加AppWidgetProviderInfo元数据

    res/xml文件夹下创建weather.xml文件

    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"  
        android:minWidth="294dp"  
        android:minHeight="72dp"  
        android:updatePeriodMillis="86400000"  
        android:previewImage="@drawable/preview"  
        android:initialLayout="@layout/widget"  
        android:configure="com.example.android.ExampleAppWidgetConfigure"   
        android:resizeMode="horizontal|vertical">  
    </appwidget-provider>  
    • minWidth与minHeight属性表示了App Widget所需的最小布局区域。
      默认的主屏中,App Widget要想确认其位置,需要通过基于网格的具有固定宽度和高度的单元。如果App Widget的最小宽度和高度无法匹配给定的单元,它将会自动扩展到最接近的单元大小。
      由于主屏的布局方向是可变的,你应该考虑最坏的情况(每单元的宽和高都是74dp)。然而,为了防止在扩展时产生整数计算错误,你还需要减去2。因此,你可以用以下公式来计算最小宽度和高度(单位dp):(单元数量×74)-2。
      同时,为了保证你的App Widget能够在各种设备上正常使用,它们的宽度和高度必须不超过4×4个单元。

    • updatePeriodMillis属性定义了App
      Widget框架调用AppWidgetProvider的onUpdate方法的频率。对于实际的更新,我们不建议采用该值进行实时处理。最好是越不频繁越好——为了保证电量,一小时不超过一次为好。当然,你也可以允许用户对更新频率进行设置。
      注意,如果更新触发时设备正处于休眠状态,设备将唤醒以执行该操作。如果你的更新频率不超过一小时一次,这不会对电池的寿命产生多大的影响。但如果你需要更频繁地更新却又不想要在设备休眠时执行,那你可以使用定时器来执行更新。要达到这种目的,可以在AlarmManager中设置一个AppWidgetProvider能接收的Intent。将类型设为ELAPSED_REALTIME或RTC。由于AlarmManager只有当设备处于唤醒状态时才会被调用,我们只要设updatePeriodMillis为0即可。

    • linitialLayout属性标识了初始布局文件。
    • configure属性定义了当用户添加App Widget时调用的Activity。(这是可选的)
    • previewImage定义了App
      Widget的缩略图,当用户从widget列表中选择时,显示的就是这张图。如果没设置,用户将看见的是你的应用的默认图标。
    • autoAdvanceViewId属性是在Android3.0引入的,用于标识需要被host(launcher)自动更新的widget的子视图。
    • resizeMode属性标识了widget重新布局的规则。你可以使用该属性来让widget能够在水平、竖直、或两个方向上均可变化。可用的值包括horizontal、vertical、none。如果是想在两个方向上均能拉伸,可设置为horizontal|vertical,当然,需要Android3.1以上版本。

    4. 使用AppWidgetProvider类

    public class ClockProvider extends AppWidgetProvider {
        @Override
        public void onEnabled(Context context) {
            super.onEnabled(context);
            Intent _intent = new Intent(context, ClockService.class);
            context.startService(_intent);
        }
    
        @Override
        public void onDisabled(Context context) {
            super.onDisabled(context);
            Intent _intent = new Intent(context, ClockService.class);
            context.stopService(_intent);
        }
        @Override
        public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
            super.onUpdate(context, appWidgetManager, appWidgetIds);
        }
    
    }
    • onUpdate()
      由updatePeriodMills定义的时间间隔触发。当然,添加Widget的时候也会,因此,应该在此处执行一些必要的配置,如定义View的事件处理handler,有必要的话,还会启动一个临时的Service。然而,如果你声明了一个配置Activity,该方法将不会在此时被调用。

    • onDelete(Context, int[])
      当App Widget从host中移除时会被调用。

    • onEnabled(Context)
      当App Widget的实例被第一次创建时,该方法将被调用。如果你建了两个实例,那该方法也只会被调用一次。
    • onDisabled(Context)
      当最后一个App Widget的实例被删除时,该方法被调用。你可以在此处清除之前在onEnabled里执行的操作。

    • onReceive(Content, Intent)
      每次接收到广播都会被调用,而且执行的顺序在上述方法之前。通常,你不需要实现该方法,因为AppWidgetProvider已经对各种不同类型的广播进行了过滤及分发。
      注:在Android1.5中,有一个已知的问题,使得在某些情况下,onDeleted不会被调用。这时,你就需要实现onReceive()了。

    5. 使用Service更新数据

    public class ClockService extends Service implements AMapLocalWeatherListener {
        private LocationManagerProxy mLocationManagerProxy;
        public SimpleDateFormat sdf;
        public Timer timer;
        @Override
        public IBinder onBind(Intent intent) {
            return null;
        }
    
        @Override
        public void onCreate() {
            super.onCreate();
            System.out.println("start");
            sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
    
                    String time = sdf.format(new Date());
                    updateViews(time);
                }
            },0,1000);
        }
    
    
        private void updateViews(String info)
        {
            Intent _intent = new Intent(this, MainActivity.class);
            PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, _intent, 0);
            RemoteViews views = new RemoteViews(getPackageName(), R.layout.widget);
            views.setTextViewText(R.id.tv_weather, info);
            views.setOnClickPendingIntent(R.id.tv_weather, pendingIntent);//点击跳到主页
            AppWidgetManager manager = AppWidgetManager.getInstance(this);
            ComponentName name = new ComponentName(this, ClockProvider.class);
            manager.updateAppWidget(name,views);
        }
    
        @Override
        public void onDestroy() {
            super.onDestroy();
            timer.cancel();
        }
    }
    

    通过RemoteViews类和AppWidgetManager类发送广播更新界面数据

    6.在AndroidManifest中声明一个App Widget

    <service android:name=".ClockService"></service>
            <receiver android:name=".ClockProvider">
                <intent-filter>
                    <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>
                </intent-filter>
                <meta-data
                        android:name="android.appwidget.provider"
                        android:resource="@xml/weather"></meta-data>
            </receiver>

    meta-data标签标识了AppWidgetProviderInfo资源,它需要以下属性:
    android:name:使用android.appwidget.provider来标识AppWidgetProviderInfo。
    android:resource:标识AppWidgetProviderInfo的资源位置。

    展开全文
  • Flutter Widget详解

    千次阅读 2020-09-24 19:39:05
    Flutter Widget详解 Widget是Flutter应用程序用户界面的基本构建块。每个Widget都是用户界面一部分的不可变声明。 与其他将视图、控制器、布局和其他属性分离的框架不同,Flutter具有一致的统一对象模型:widget。 ...
  • odoo widget命令及展示,widget详细使用教程。

    千次阅读 多人点赞 2019-08-22 18:10:57
    odoo 开发时经常需要用到widget,但是有点多,在网上查也没有像是效果图的。 所以就写的这篇博客,让自己以后使用不常用widget能够比较方便,也方便大家。 All for one, one for all. 1.widget=“statusbar” 使用...
  • ODOO 常用widget

    2019-05-18 08:30:15
    widget="statusbar" 头部状态条标签 widget="email"电子邮件地址标签 widget="selection" 下拉选择标签 widget="mail_followers" 关注者标签 widget="mail_thread" 消息标签 widget="progressbar" 进度条,按...
  • Android列表小部件(Widget)开发详解

    万次阅读 多人点赞 2018-06-21 13:35:28
    Widget是Android应用小部件,它可以作为一个微型视图嵌套在其他应用程序中(比如可以放置在桌面),并接收周期性更新。通常来说,小部件可以通过与App交互更方便的将App的内容展示给用户,同时它也是App的一个便捷...
  • 例如一款天气软件,其可以附带一个Widget让用户在主屏幕就可查看今日的天气情况,例如股票相关的软件,用户将自己感兴趣的股票收藏,无需打开App,在主屏幕即可查到对应的股价信息。 刚好iOS14正式版更新的节奏,抽...
  • Qt widget详解

    千次阅读 2019-05-30 22:03:52
    #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv);//有且只有一个应用程序窗口; Widget w;//继承自QWidget,QWidget是一个窗口基类,所以...
  • 问题的提出在项目中有一个要求:需将两个widget重叠放置,并且上面的widget为透明背景。解决方案在谷歌搜索中找到一个比较可行的解决方案,利用QGridLayout布局管理器对象实现两个Widget的重叠放置。可以手动也可以...
  • AppWidget

    2013-03-08 10:48:02
    1.创建一个app widget需要 AppWidgetProviderInfo object: 用于描述AppWidget的元数据,比如AppWidget的layout,更新频率,AppWidgetProvider等。 AppWidgetProvider class implementation: 基于broadcaster ...
  • iOS 14 Widget 刷新

    千次阅读 2020-09-26 14:18:29
    在上一篇文章中, 我和大家介绍了 iOS 14 Widget 的基本内容, 了解了组成 Widget 的主要几个组件. 这篇文章开始, 我会和大家一起对 Xcode 自带的默认项目做一些优化, 让大家更加深入的学习桌面 Widget. 如果需要了解...
  • android widget 开发

    千次阅读 2018-08-10 17:36:24
    因为项目中需要用到widget,所以在这里大致记录一下widget的使用流程。因为没有深入的研究,所以仅仅是做一个大概的解析,因为需求简单,这里就不介绍RemoteViewService和RemoteViewFactory了,如果需要的不要浪费...
  • QT布局之addWidget和addLayout(widget基类) (1)addwidget()方法用于向布局中添加控件; widget.h widget.cpp (2) addLayout()方法用于向布局中添加子布局; 分为上下两个布局 (3)用Qlabel显示图片的语句 widget...
  • Widget详解

    千次阅读 2013-09-20 17:12:33
    一、Widget的创建步骤 widget:桌面小控件 1 写一个类extends AppWidgetProvider  2 在清单文件件中注册:          android:resource="@xml/example_appwidget_info" /> 3 在res/xml创建examp
  • Qt Qml嵌入Widget以及Qml与Widget交互

    千次阅读 2018-03-15 14:37:43
    这里是在Win10下,使用Qt5.7.0(cpp+qml)实现Qml嵌入Widget以及Qml与Widget交互。QQuickWidget类,可以解决此问题。1、先在pro是加入QT += quickwidgets2、新建QmlWidget类,并继承QWidget。main.cpp如下#include &...
  • Alignment.center, @required this.icon, this.color, this.highlightColor, this.splashColor, this.disabledColor, @required this.onPressed, this.tooltip }) 可以看到,icon是必填参数 icon接收一个Widget,...
  • Widget原理

    千次阅读 2013-10-10 14:28:03
    在android系统中widget主要由三部分组成, AppWidgetProvider,AppWidgetHost和AppWidgetService。一般三个模块分别驻留在不同的进程中,AppWidgetProvider提供widget处理逻辑,当widet想更新显示时,通过...
  • 如何进行 iOS Widget 开发?

    千次阅读 热门讨论 2020-10-30 12:34:24
    简介:iOS 14 重磅推出了新功能 Widget,可以在主屏上展示一些关键信息,如日程、待办事项、设备电量等。Widget 的设计定位是什么?有哪些限制?如何进行 Widget 开发?本文基于一个小游戏——盒马小镇的 Widget ...
  • odoo 常用widget

    千次阅读 2016-07-05 09:58:46
    widget="statusbar" 头部状态条标签 widget="email" 电子邮件地址标签 widget="selection" 下拉选择标签 widget="mail_followers" 关注者标签 widget="mail_thread" 消息标签 widget="progressbar" 进度条,...
  • Flutter Widget显示隐藏

    千次阅读 2019-06-06 17:17:29
    其实,在Flutter中控制Widget显示和隐藏有3中方法: 不过3种方法的核心思想都是根据变量的值去判断的,所以先定义一个变量: bool visible = true; 变量的值可以在事件中去控制,比如: onPressed: () { setS...
  • 1.Android Widget
  • A Jupyter widget could not be displayed because the widget state could not be found. This could happen if the kernel storing the widget is no longer available, or if the widget state was not ...
  • NGUI Widget

    2015-08-12 12:29:52
    widget会有一定的面积(如下图的白色框范围),但是在运行的时候(Game View)是完全不可见的,所以非常适合当做其他组件的容器(让所有的sprite或者label等以它进行各种对齐)。 UIWidget 也被用来当做...
  • Widget扩展一般用于页面组件的扩展。 先说明Widget被调用的方法,你只需要在你的模板文件中使用这样的语法:{:W("Demo/demo_widget_method",array(5,'thinkphp'))} 系统就会自动去寻找对应的Widget类文件并执行对应...
  • 写了个APPwidget,在widgetpreview里边看得见,但在widget里边找不到怎么回事?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,584
精华内容 34,233
关键字:

widget