说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Android自带Widget - Clock指针钟表源代码分析

HTML文档下载 WORD文档下载 PDF文档下载
我们都知道Android操作系统自带了几个Widget组件,比如带指针的钟表,本文分析了该钟表的Widgets部分的实现。

作者:Android开发网

我们都知道Android操作系统自带了几个Widget组件,比如带指针的钟表,一般在Home Screen上的那个表盘,它在哪里呢? 我们其实在alarmclock这个包中可以看到,下面就来一起分析一下实现的方法。其实有关内部的更新在AnalogClock类已经完成了,这里仅仅分析Widgets部分。

首先看下alarmclock中有关widgets的AndroidManifest.xml描述内容如下:

 

<receiver android:name="AnalogAppWidgetProvider" android:label="@string/analog_gadget-android123">             <intent-filter>                 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />             </intent-filter>            <meta-data android:name="android.appwidget.provider" android:resource="@xml/analog_appwidget" /></receiver>

xml/analog_appwidget.xml的内容如下

 

<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"     android:minWidth="146dip"  //widget最小宽度     android:minHeight="146dip" //widget最小高度     android:updatePeriodMillis="0" //更新频率,单位为毫秒     android:initialLayout="@layout/analog_appwidget"  > </appwidget-provider>

layout/analog_appwidget.xml的内容如下

 

<AnalogClock xmlns:android="http://schemas.android.com/apk/res/android"      android:dial="@drawable/appwidget_clock_dial"   //表盘背景图片     android:hand_hour="@drawable/appwidget_clock_hour"   //时针图片     android:hand_minute="@drawable/appwidget_clock_minute" //分针图片     android:layout_width="fill_parent"       android:layout_height="fill_parent" />

最后我们看下androidmanifest.xml中的receiver是如何触发的,AnalogAppWidgetProvider.java的内容如下

 

public class AnalogAppWidgetProvider extends BroadcastReceiver {    public void onReceive(Context context, Intent intent) {        String action = intent.getAction();                if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)) {            RemoteViews views = new RemoteViews(context.getPackageName(),                    R.layout.analog_appwidget); //这里RemoteViews载入的布局文件                        int[] appWidgetIds = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);                        AppWidgetManager gm = AppWidgetManager.getInstance(context);            gm.updateAppWidget(appWidgetIds, views); //开始执行刷新内容        }    }}

 

 

 

 

 

如何激励同事编写单元测试? 谷歌GCE vs. 亚马逊EC2:快源于谷歌本有的底蕴 不要责怪开源技术 它是无辜的 短命:微软将于2014年停止对WP8系统支持 Native和Web过时了,企业级移动开发流行用Hybrid App 与EverNote竞争?谷歌Google Keep浮出水面 又一次跨越:著名3D游戏引擎Unity版本更新 Feedly团队:自研后端平台或将开源 StackMob的诱惑:16小时,山寨一款移动App “云”筹帷幄 开发者必知的5大SaaS在线服务工具 超350个政府项目托管在GitHub 政府开源会成主流? Kinect for Windows SDK 1.7正式发布,支持3D建模 SafeNet与风河系统联手推出VxWorks嵌入式系统软件货币化方案 Windows Server 2012中的动态负载均衡 Google等互联网公司将成为创新中心? 在Hadoop的战争中 MapR获新一轮3000万美元融资 初创公司DNNresearch:谷歌科技帝国的新“基石” 创业了,我们该如何起名? 乐视网联手富士康推新盒子C1S “0+290元”新浪微博发售 吸引开发者:只要开发新应用 微软便奖100美元 PaintCode - 将矢量图转化为Objective-C代码的开发神器 苹果发布iOS 6.1.3 封杀evasi0n越狱所用漏洞 [API快讯] Google开放实时协作API 58同城开源轻量级Java Web框架 Argo 初创公司AppNeta:4轮融资,4780万美元 MongoDB释放2.4版本:692更新及8大得意之作 十年6亿美元!Amazon云计算喜获CIA大单! 国人当自强:HTML5+联盟首次筹备会成功举行 开源框架TAAE发布 快速打造iOS音频应用 如何学会600多种编程语言 “第五届中国云计算大会”将于2013年6月5-7日在京召开 向oracle 中插入纪录,日期格式由问题,见内 查询问题 如何取消验证 关于asp打印的一些设置的请教 dbgrid显示不同小数位数问题 关于用nmudp实现传输!up也有分,:)) 我在WSAD5.0中创建的WAS 5.0Server 为什么总是启动出错???请各位高手指点!!! 关于Apache+mysql 100分求《设计模式-可复用面向对象软件的基础》电子书! 向oracle 中插入纪录,日期格式由问题,见内 在线等候 在企业管理器里附加了一数据库,显示为readonly,为什么!!!! 就要实习了,不知哪些公司比较乐意接受实习生呢 急!!请问如何在WEB自定义控件中响应事件? 本人最近写了一个服务器端文件管理的程序,基本的功能都已经实现,但是下载的功能还是不行,欢迎大家讨论实现。 奇怪的comboBox的数据绑定问题! 为什么不能把记录成批插入到表中? 在VC中操作access:update的where子句中用"and"组织成多个表达式时出错! 在线等候 怎么将数据库中的字段项动态的添加到COMBOX里面去。(我用的是DB2数据库) sql关于多个数据库的问题 散分了! 我也散点分吧 有些话不吐不快!看某不知来历的版主下台后发贴有感 不知道是怎么回事,难道是显示器坏了? 启动windowns2000报错"no language support detected",请问怎么解决? WIN ME下怎么调试 ASP? oracle 存储过程代码格式优化 大家看过《ASP.NET完全手册》这本书吗?为什么书中提供的与书想配的站点http://www.prosetech.com/CompleteReference/不可访问呢? 紧急求救:如何根据数据库中的值以红色字体显示datagrid中的满足条件特定列特定行? 能不能实现用NOTES databse打开一个website(公司内部的),同时这个database自动关闭?? 用pear的进来报个名,以后互相学习~ VB.NET的两个简单问题??? not enough free disk space on /tmp,这个问题如何解决,(100分) 急寻:中缀和后缀表达式互转的源代码。 请问这个页面如何实现的..... 简单问题,在线等待中... 百分求购事务处理!! 用ATL写了一个com组件,在客户端怎么调用它呢? 请问如何取得USB摄像头和普通麦克的数据,怎样将已得到的视频音频数据在终端上播放 如何让WAS和Tomcat一样,运行JSP/SERVLET的时候出现错误进行提示? 用JDBC连接SQL Server 2000数据库问题?在线等待... 弹出式菜单的问题 各位大侠,寻求帮助,急!急! c语言类中的私有和公有变量在汇编中怎么表示? 关于EJB测试的问题 谁能给个错误处理的例子 比如 SQLSERVER 数据库关闭时 返回 “数据库关闭“ 的信息 部分匹配的问题 英文版XP中文显示问题 oracle,用PreparedStatement更新数据库,date型字段精确到分,应该如何操作? 数据导入的问题 棠湖中学棠湖里是不是 差不多都是公子哥哦 是不是 一会是这个公司董事长的儿子一会是那个什么什么的儿哦 证明一道不等式若|x|≦1,且|a|≦1证明|a(x2-1)|≦|x2-1| 辩论赛,劳心者与劳力者对社会的贡献谁更大,我们是劳力者更大,能够问倒对方! 针对 劳心者比劳力者对社会贡献更大 如何提问 帮助别人的感觉真好 作文 要450字,内容丰富,没有废话! 为什么帆船在相反的风向下还能向前运行?如题 帆船的运动原理是怎样的 辩论赛题目当今社会劳心者和劳力者哪个更重要.我方反方劳力者更重要... 怎样理解血流速度与血管的截面积成反比 中世纪中国的数学成就主要的数学成就,能够有五条就行紧急! 中世纪设计的最高成就是什么建筑 棠湖中学怎么样 永康首座500千伏输变电所明年开建宁波出台国内首个网购争议处理办法(组杭州萧山错案四名当事人已提国家赔偿申浙江温岭村民收获“巨无霸”番薯 重达韩亚空难最后一名留医伤者出院 共留医民调称8成俄人认为俄腐败程度高 地方默克尔电话疑遭美安全机构窃听 致电奥俄总理:乘直升机上班因交通拥堵韩亚空难最后一名留医伤者出院 共留医俄罗斯总理访问安徽 拿相机拍照恐怖嫌犯\"白寡妇\"家庭照被曝光 阿根廷总统出席中国列车交付仪式日报:亚信上海峰会影响国际格局台地铁砍人案嫌犯遭收押 毫无悔意称“香港官员称香港电影受惠于两地合作台一男子超市偷窃被捕 警察竟与其同名英媒惊曝切尔西曼城挖角巴萨 内马尔或日本陆海空自卫队首次举行“夺回离岛”塘厦御湖半山举办媒体见面会作家张德芬:父母的态度让很多女孩变成百名摄影家聚焦太行明珠七步沟 全国摄泰军方命所有电台停播日常节目 仅能转
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘