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

Android编程之实现GPS定位

HTML文档下载 WORD文档下载 PDF文档下载
曾几何时,手机开发联盟推出自己的Android手机雏形时,受到了极大的追捧。Google为了鼓励开发人员来开发Android手机的应用程序,提供了1千万美金来奖励那些在Android开发中的获奖者。当然,本文并不是告诉读者如何去赢得大奖,而是帮助读者理解如何使用Android SDK来开发Android程序,其中包括如何使用XML布局来显示广西,从GPS组件中获得设备的位置等,在本文的最后将学习如

 

曾几何时,手机开发联盟推出自己的Android手机雏形时,受到了极大的追捧。Google为了鼓励开发人员来开发Android手机的应用程序,提供了1千万美金来奖励那些在Android开发中的获奖者。当然,本文并不是告诉读者如何去赢得大奖,而是帮助读者理解如何使用Android SDK来开发Android程序,其中包括如何使用XML布局来显示广西,从GPS组件中获得设备的位置等,在本文的最后将学习如何将文本显示在一个定制的视图上。
    一、准备工作
    要想开发Android程序,我们需要如下三种软件:
    1. Eclipse
    2. Android SDK
    3. 开发Android程序的Eclipse 插件
    为了开始我们的工作,首先要安装Eclipse,然后从Google的网站获得Android SDK,并且安装Eclipse插件。
    二、Activity类
    每一种移动开发环境都有自己的基类。如J2ME应用程序的基类是midlets,BREW的基类是applets,而Android程序的基类是 Activity。这个activity为我们提供了对移动操作系统的基本功能和事件的访问。这个类包含了基本的构造方法,键盘处理,挂起来恢复功能,以及其他底层的手持设备的访问。实质上,我们的应用程序将是一个Activity类的扩展。在本文中读者将会通过例子学习到如何使用Activity类来编写Android程序。下面是一个简单的继承Activity的例子。 引用:

 

曾几何时,手机开发联盟推出自己的Android手机雏形时,受到了极大的追捧。Google为了鼓励开发人员来开发Android手机的应用程序,提供了1千万美金来奖励那些在Android开发中的获奖者。当然,本文并不是告诉读者如何去赢得大奖,而是帮助读者理解如何使用Android SDK来开发Android程序,其中包括如何使用XML布局来显示广西,从GPS组件中获得设备的位置等,在本文的最后将学习如何将文本显示在一个定制的视图上。

一、准备工作

    要想开发Android程序,我们需要如下三种软件:

    1. Eclipse

    2. Android SDK

    3. 开发Android程序的Eclipse 插件

 

    为了开始我们的工作,首先要安装Eclipse,然后从Google的网站获得Android SDK,并且安装Eclipse插件。

二、Activity类

    每一种移动开发环境都有自己的基类。如J2ME应用程序的基类是midlets,BREW的基类是applets,而Android程序的基类是 Activity。这个activity为我们提供了对移动操作系统的基本功能和事件的访问。这个类包含了基本的构造方法,键盘处理,挂起来恢复功能,以及其他底层的手持设备的访问。实质上,我们的应用程序将是一个Activity类的扩展。在本文中读者将会通过例子学习到如何使用Activity类来编写Android程序。下面是一个简单的继承Activity的例子。 引用:

 

public class LocateMe extends Activity{public void onCreate(Bundle params){super.onCreate(params);setContentView(R.layout.main);}public boolean onKeyDown(int keyCode, KeyEvent event){return true;}
在上面程序中的onCreate方法将在应用程序第一次开始时调用。Bundle对象包含了任何用于建立参数或环境数据所需要的基本信息。 Activity可以是全屏的,或是悬浮的。它们可以是嵌套的,但是每一部分基本是独立的。那么,也许有人会问,setContentView是做什么的呢?
三 View类
    View类是Android的一个超类,这个类几乎包含了所有的屏幕类型。但它们之间有一些不同。每一个view都有一个用于绘画的画布。这个画布可以用来进行任意扩展。本文为了方便起见,只涉及到了两个主要的View类型:定义View和Android的XML内容View。在上面的代码中,使用的是 “Hello World” XML View,它是以非常自然的方式开始的。
    如果我们查看一下新的Android工程,就会发现一个叫main.xml的文件。在这个文件中,通过一个简单的XML文件,描述了一个屏幕的布局。这个简单的xml文件的内容如下: 引用:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_centerHorizontal="true"    android:text="Press the center key to locate yourself"    /></RelativeLayout>
上面的内容的功能看起来非常明显。这个特殊文件定义了一个相关的布局,这就意味着通过一个元素到另一个元素的关系或是它们父元素的关系来描述。对于视图来说,有一些用于布局的方法,但是在本文中只关注于上述的xml文件。
    RealtiveLayout中包含了一个填充整个屏幕的文本框(也就是我们的LocateMe activity)。这个LocateMe activity在默认情况下是全屏的,因此,文本框将继承这个属性,并且文本框将在屏幕的左上角显示。另外,必须为这个XML文件设置一个引用数,以便 Android可以在源代码中找到它。在默认情况下,这些引用数被保存在R.java中,代码如下: 引用:
public final class R{public static final class layout{public static final int main=0x7f030001;}}
视图也可以被嵌套,但和J2ME不同,我们可以将定制的视图和Android团队发布的Widgets一起使用。在J2ME中,开发人员被迫选择 GameCanvas和J2ME应用程序画布。这就意味着如果我们想要一个定制的效果,就必须在GameCanvas上重新设计我们所有的widget。 Android还不仅仅是这些,视图类型也可以混合使用。Android还带了一个widget库,这个类库包括了滚动条,文本实体,进度条以及其他很多控件。这些标准的widget可以被重载或被按着我们的习惯定制。现在让我们来进入我们的例子。 
四、Android实例
    这个演示应用程序将演示了用户的当前的经度和纬度(在文本框中显示)。onCreate构造方法将和上面的例子基本相同,除了在其中加入了键盘处理,现在让我们看一下onKeyDown的代码。 引用:
public boolean onKeyDown(int keyCode, KeyEvent event){if(keyCode != KeyEvent.KEYCODE_DPAD_CENTER || m_bLoading){return true;}m_bLoading = true;getLocation();return true;}
下面让我们来解释一下这段代码,首先,这段代码检查了当前被按下的键,但还没有开始处理。而是在getLocation方法中处理这一切的。然后,将装载flag标志以及调用getLocation方法,下面是getLocation方法的代码。
private void getLocation(){Location loc;LocationManager locMan;LocationProvider locPro;List<LocationProvider> proList;setContentView(R.layout.laoding);locMan = (LocationManager) getSystemService(LOCATION_SERVICE);proList = locMan.getProviders();locPro = proList.get(0);loc = locMan.getCurrentLocation(locPro.getName());Lat =  (float)loc.getLatitude();Lon =  (float)loc.getLongitude();CreateView();setContentView(customView);}
到这为止,程序开始变得更有趣了。但是不幸的是,Google关于之方面的文档还是比较少了。在程序的变量声明之后,我们需要演示一些装载信息。 R.layout.loading符合了另一个简单的XML布局视图。通过简单地调用setContentView方法可以使用转载信息重绘屏幕。
    读者要注意的是:在编译时,Android会预先将所有的XML布局数据包装起来。如果我们想在编译后变化布局属性,按着规定,我们必须在源程序中做这些事。
     获得LocationManager的唯一方法是通过getSystemService()方法的调用。通过使用LocationManager,我们可以获得一个位置提供者的列表。在一个真实的手持设备中,这个列表包含了一些GPS服务。实际上,我们希望选择更强大,更精确,最后不带有其他附加服务的 GPS。现在,在模拟器中提供了一个用于测试的GPS,这个GPS来自San Francisco。定制的GPS文件可以可以被上传,并进行测试。如果我们要测试更复杂的应用,来自San Francisco的GPS可能并不适合。
    目前我们可以使用位置管理器和位置提供者进行getCurrentLocation的调用。这个方法返回本机的当前位置的一个快照,这个快照将以 Location对象形式提供。在手持设备中,我们可以获得当前位置的经度和纬度。现在,使用这个虚拟的手持设备,我们可以获得这个例子程序的最终结果:建立了显示一个定制的视图。 
五、使用定制视图
    在最简单的窗体中,一个Android中的视图仅仅需要重载一个onDraw方法。定制视图可以是复杂的3D实现或是非常简单的文本形式。下面的CreateView方法列出了上面看到的内容。 引用:
public void CreateView(){customView = new CustomView(this);}
这个方法简单地调用了CustomView对象的构造方法。CustomView类的定义如下: 引用:
public class CustomView extends View{LocateMe overlord;public CustomView(LocateMe pCtx){super(pCtx);overlord = pCtx;}public void onDraw(Canvas cvs){Paint p = new Paint();String sLat = "Latitude: " + overlord.getLat();String sLon = "Longitude: " + overlord.getLon();cvs.drawText(sLat , 32, 32, p);cvs.drawText(sLon, 32, 44, p);}}
这个定制的Android视图获得了经度和违度的测试数据,并将这些数据显示在屏幕上。这要求一个指向LocateMe的指针,Activity类是整个应用程序的核心。它的两个方法是构造方法和onDraw方法。这个构造方法调用了超类的构造方法以及引起了Activity指针的中断。onDraw方法将建立一个新的Paint对象(这个对象封装了颜色、透明度以及其他的主题信息),这个对象将会访问颜色主题。在本程序中,安装了用于显示的字符串,并使用画布指针将它们画到屏幕上。这个和我们了解的J2ME游戏的画布看起来非常类似。
六、Android展望
    从纯粹的开发观点看,Android是一个非常强大的SDK。它使用基于XML的布局和定制视图联合了起来。并可以使用滚动条、地图以及其他的组件。所以的这一切都可以被重载,或由开发人员来定制。但它所提供的文档非常粗糙。在文档中并没有象SMS等技术,但是从整体上来看Android SDK,还是非常有希望的。也非常符合Google承诺的“First Look”SDK。

 

 

 

【MDCC 2015】产品与设计专场(下):网易云音乐、在行、三节课、去哪儿网、野兽骑行大咖的产品之路 友盟:把数据用活 让开发者享受大数据红利 友盟:用活大数据 让精细化运营为移动开发者服务 携手世纪互联 IBM Bluemix云平台落地中国 【MDCC 2015】IoT峰会—硬件开发与技术专场(下):专家齐聚,共同打造联网新时代 【MDCC 2015】虚拟现实专场(下):虚拟现实的“困”与“竞” 【CTO讲堂】面对世界竞争对手,如何拿到Google PDF开源项目PDFium? 提升网站性能开发的10个技巧 SDCC 2015:顶尖技术精英云集 大会日程及首批讲师议题公布 《近匠》专访猿团创始人CEO谢恩明:梦想、未来、改变 《近匠》专访小熊尼奥:从软硬结合到IP合作,AR产品的机遇 W3C启动Web支付标准工作,推进在线结算流程 W3C中国区会员沙龙在京召开 W3C CEO Jeff分享W3C未来发展重点 【SDCC讲师专访】车轮互联总架构师韩天峰:PHP是最好的编程语言 SDCC 2015讲师专访精彩集锦(一):你想知道的,都在这! (入门篇)带你走进Erlang 【大神来了】Elixir语言设计者Jos&#233; Valim:释放Erlang VM的能量 【SDCC 2015讲师专访】刘小溪:Vert.x3的异步框架实战 【CTO讲堂】支付接入开发的陷阱有多深? 程序员界“香饽饽”、大神级别人物集体亮相——SDCC 2015编程语言专场议题曝光 【CTO沙龙】CDN在共享经济下的创新应用 深入浅出Fetch API 带你入解应用场景及适用问题 SDCC 2015讲师专访精彩集锦(二):途牛网、饿了么、快的等大牛都来了 百度、饿了么、美团专家齐聚SDCC2015,剖析前端开发核心技术 【SDCC讲师专访】百度乔刚:前端可视化难点分析及探索实践 【CTO讲堂】Growth Hacking背后,数据分析平台的架构调整 BAT、巨杉、南大、柏睿等齐聚SDCC—新一代数据库专场议题曝光! 《近匠》BeeCloud创始人黄君贤:三行代码集成支付的技术实现 【SDCC讲师专访】AdMaster技术副总裁卢亿雷:分布式数据库挑战与分析 tvOS真的代表了应用的未来吗? 使用Fetch API和ES6生成器构建异步API B/S下如何使用.css?--答对加分,谢谢 200分,ASP.NET如何访问COM+组件?????? JBuider 6 的问题?-->小问题,用过的进来看看!!! 感情问题,请各位帮帮我!!!!!! (校园网)门户网站的设计与组建 关于如何动态分配内存的一个问题,请指教(50分) 在winForm下可以用session 吗? 跟网页下的有什么不同呢? 用orcle搭建一个客户服务器平台,该如何搭建?(通过vc的应用程序在客户端访问)--都有分给的. 初学websnanp,请教几个小问题? 问一个基础问题? 怎样在MDI框架下,显示一个CFORMVIEW类的子窗口? AUTOCAD图形打印驱动程序设计 AUTOCAD图形打印驱动程序设计 情帮忙(50分) 一个水晶报表的问题 有人真正使用过XML开发程序么? 我想买书 pb7.0哪里可以下载? AUTOCAD图形打印驱动程序设计 贺猪猪成星,散分给水友,天下皆欢颜!!! WinRAR的压缩密码怎么取消啊?快,快,急需!!! 没有权限打开names.nsf的问题? 复选框的问题,在线等待!!! 没有权限打开names.nsf的问题? IE浏览器显示的字体不是默认的,变成了空心字体。如何改成系统默认的字体?(win98+IE5.0) 寻找高手 关于协议的问题 求助!能把一个字段内容分解的函数? Servlet问题?(急等,立结) oleconnection 支不支持sybase的连接,不通过odbc如何连接Sybase高手请进!急啊!!! 关于return的问题 为何内存消耗在不断增长? 浏览器类型 求文件长度? 用DELPHI 开发过ORACLE数据库的高手帮忙,我现在遇到个问题, BCB消息机制问题, 关于MFC 请教:jar问题 零为什么不能做为除数。 菜单资源ID得问题 请问高手,实验室局域网内部下载速度很慢,会是什么原因造成的? 如何利用Datareport做出好看一点的报表? Grid的列怎么来调整? GDI+类使用new操作符问题 有人在吗? 请看看这一样个SQL语句 页面上有两个相连的表格时,中间的边框变得很粗,能否做到和一个表格的效果? 帮我写一个简单的和SERVER2000查询的例子50分相送!! 怎样将别人给我的数据库文件导到本地? 近日较忙,散分200 请问将脚本写在页面和写在J文件里有什么不同?我写在页面上一切正常,可是把脚本防在一个JS文件就报错 ===好几天,ADO 连接oracle数据库的问题.还搞定。大伙给看看 让人积极向上的句子 用碳素墨水书写文字档案便于保存为什么?是不是因为杂质炭黑这些不活泼? 怎么用一个浪漫而且又不失潮流词语来表达这个人是我的唯一. 一个棱长为20cm的正方体的某个面平行于投影面时,这个面的正投影的面积为___cm2 用碳素墨水书写的原因包括”它是黑色比较清楚”吗?为什么?我知道是因为化学性质稳定,但我问包括”它是黑色比较清楚”吗? 在电磁感应现象中,磁通量变化与电流产生是同时发生的还是有先后顺序的 在投影面垂直面中,于v面垂直且于h,w面倾斜的平面是什么 用碳素墨水书写档案的化学性质是什么 Si和NaOH加水反应中的电子转移以及原因 指纹的图案分几类 书写档案为什么用单质炭墨水 为什么现在我们高中化学书一般有碱参加反应都是NaOH?为什么不用其他强碱? 人的指纹的图案大致可分哪几类? 莫道桑榆晚,为霞尚满天 这诗句是啥意思?3Q明日黄花是代表什么意思呢? 一百度时,ph2的盐酸与ph12的naoh溶液等体积混合,为什么碱过量? 为什么当直线与投影面倾斜时,则直线的投影小于直线的实长.具体是什么原因造成投影变短的?是投影有重合的还是要考虑点的大小?还是别的什么原因?虽然这是个常识但我想知道具体的解释. 如图所示,三个木块A,B,C在水平推力F的作用下靠在竖直墙壁上,且处于静止状态,则下列说法中正确的是?为A.A与墙壁的接触面可能是光滑的B.B受到A作用的静摩擦力,方向可能竖直向下C.B受到A作用 我们的英语已经上了一个半小时和我们一个半小时之前上的,用英语怎么说你同学通常什么时候做作业,用英语怎么说 钙离子和氢氧根离子能共存吗 正交直线在投影面是否也垂直 英语翻译“莫道桑榆晚,为霞尚满天" 中翻英. 西瓜爆炸有具体点的真相描述吗? 判断对错,并说明理由:水平面再其垂直的投影面上的投影集聚为直线. 任何溶胶都可加入可溶性电解质聚沉吗 男女之间的爱,该怎么解释 人的指纹有几种? 循环水池如何设计,水量为3200T/h,水温40℃,需冷却至30℃以下,不考虑损失,挖多大容积的水池? 请问什么是西瓜 爆炸 翻译英语“你手机的电池还没有充满/已经充满了" 为什么粒子在布朗运动相互碰撞时可以聚集起来?(关于胶体聚沉)胶体的微粒在一定条件下发生聚集的现象叫做聚沉(Coagulation).胶体稳定的原因是胶粒带有某种相同的电荷互相排斥,胶粒 西瓜“爆炸”事件引关注 膨大剂滥用疑危害健康? 电池翻译为英文 如图所示,表面处处同样粗糙的楔形木块abc固定在水平地面上,ab面和bc面与地面的夹角分别为α和β,且α>β,一初速度为v0的小物块沿斜面ab向上运动,经时间t0后到达顶点b时,速度刚好为零;然后 (2011·莱芜)2011年5月西瓜"爆炸"事件发生后,西瓜膨大剂进入民众视野.有人将健康状况良好的小白鼠平均分为两组,其中一组喂食西瓜膨大剂以探究其对动物有无影响.这种方法属于A、观察法 B、 为什么加入电解质会破坏溶胶,使溶胶聚沉 什么样的节能灯能调光. 作文 西瓜爆炸 感想 要400字 急今天就要 当我们勉励别人要积极向上进取努力的时候可以用上( ,)这一千古名句 节能灯可以调光吗? 标况下VL氯气与过量消石灰完全反应所得漂白粉中有效成分次氯酸钙的质量为 当我勉励别人要积极向上进取努力的时候,可以用上哪句千古名言 学者们,谁知道磁通量和电磁感应的关系?要微观上的原因 为什么磁通量的变化就会产生感应电流? 标准状况下11.2L 氯气通入足量石灰乳中制备漂白粉,转移电子数目为NA 为什么错? 当我们勉励别人要积极向上进去努力的时候,可以引用哪一句千古名句? 阐述凯恩斯主义总供给曲线,短期、长期总供给曲线三种情形下,总需求...阐述凯恩斯主义总供给曲线,短期、长期总供给曲线三种情形下,总需求的变动如何引起国民收入和价格水平变动?这是 低等植物细胞有丝分裂形成细胞板吗还有除了末期是不是都和动物细胞一样? 当我勉励别人要积极向上进取努力的时候用哪一千古名句 在长期总供给曲线时,总需求的变动会引起国民收入和价格水平同方向变动为什么? 氢氧根离子与钙离子能不能共存? 鲁迅的《孤独者》中分析“孤独”. 在长期,垂直的总供给曲线表明:(1)工资具有完全弹性;(2)货币需求的利率弹性为0该如何证明或解释这两点? 如图第11题,求大神解答 鲁迅 《孤独者》 里的“孤独”有哪几个含义? 锂电池可以用于玩具模型吗?如题,3.7V的话会不会比用1.2V更快?似乎有些地方说锂电池用于模型放电不行,我是准备做智能车模型的,不是玩遥控的, 一氯代丁醇如何生成环醚,书上是氢氧化钠加热,是否由于醇的酸性与强碱反应呢?是否是脱去氯化钠成环?醇有酸性的啊~它会和碱金属反应啊~有比水弱的酸性啊 怎样写鲁迅孤独者方面论文? 铝和氢氧根还原性,铝做阴极和水中氢氧根相比谁被氧化了 (2S,3S)-3-氯-2-丁醇结构式 均有保存价值的档案都使用碳素墨水书写,是因为 形容跟不上时代的词语?比较新潮的词语. 首尔FC主场如临大敌 恒大球迷将占到土硬顶别买中国导弹警告 已用中方导弹金正恩出席朝军2万人连长大会 发表\中印携手,印媒欢呼并警惕美国情报机构“搞砸了”奥斯卡影后赞与查尔斯王子跳舞比“亲热朝或将第四次核试 美韩揣测朝“核冒险美国“窃听门”或成欧盟峰会议题 法国第七届阿布扎比电影节开幕巴西国企独揽石油招标引抗议 政府进退央行:贷款基础利率集中报价和发布机制杜青林对西班牙进行友好访问澳首都领地同性恋合法化 或澳高等法院墨前警长向美贩毒 被判13年监禁罚款英国小王子受洗照流出 四世同堂皇室香纽约侨界强烈谴责美电视节目歧视性言论日媒总结:当你有这些七大征兆可能将被美国“窃听门”或成欧盟峰会议题 法国美国十岁男孩弑父案即将宣判 孩子去处英国男子爱整人 对妻子恶作剧意外把自奥斯卡影后赞与查尔斯王子跳舞比“亲热一半是暴力,一半是暴利 盘点这些年让曲靖供电局成云南电网首家A级厂务公开云南宣威提升应急电力供应水平大公报重走南方丝绸之路启动曲靖供电局与曲靖供电公司整合工作正式马英九:周美青很支持服贸协议 建议多不满洪仲丘案一审宣判 家属最快本周提中德牵手共同为世界和平保驾护航姚笛前男友迟帅疑影射文章出轨 网友:今日空气最差10城:河北占6席 天津全球各地响应“地球一小时”活动迪拜赛马世界杯上的“礼帽风景线”黎巴嫩一军队检查站遭汽车炸弹袭击 至金羊厨房微信改版上线 关注即享“私人《甘肃省2014年依法行政工作要点的本网专访漳州副市长王毅群:生态文明先从3月30日22点至4月1日22点 哈尔滨市平房东轻广场将建文化长廊 将历史频道一周图片精选2014.03.情感揭秘:5个年龄段女人的不同择偶密“大通杯”天科创业投资挑战赛启动
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘