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

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。

 

 

 

《近匠》SENSORO CTO赵东炜:解密iBeacon生态 我由Angular转向React,为什么? 产品设计中的九个注意事项 昂贵、复杂、不可靠!智能家居产品的尴尬现状 Facebook的CIO都做些什么? 穷游网CTO黄向阳:成果与价值是最好的驱动力 2015移动游戏行业方向标:创业者必须关注的几个领域 基于Python的行为驱动开发实战 面向WP和Android!微软车库发布多款免费应用 GRPC:谷歌发布的首款基于HTTP/2和protobuf的RPC框架 革命,就是现在!——CES 2015行纪 HTML5游戏引擎排行榜 Construct 2最受欢迎 2015手游营销新趋势:电视广告,及其投放逻辑 详解下一代开源混合应用框架Reapp 应用内一键交易!Google公布Android Pay项目 Timehop为什么要放弃Rails,转向Go? 无线充电技术走入客厅 宜家推出“Home Smart”系列 发布仅一年,虚幻引擎4宣布完全免费! HTML5初学者福利!11个在线学习网站推荐 Qualcomm发布Snapdragon 820与超声波指纹识别技术 App Store应用僵尸化:没品质没资本的必然走向 Unity 5正式发布:支持21种平台、个人版免费! 创新高性能移动UI框架——Canvas UI 框架 取精华、去糟粕!适合iOS开发者的15大网站推荐 Swift如何优化性能? 【程序员电子刊精选】明道CEO任向晖:企业也需要养成好习惯 你信吗?重构软件并不会改善代码质量 融合VR与AR:uSens推出虚拟现实手机头盔 4月17-18日,OpenStack、Spark、Container齐聚OpenCloud 2015 第四代CSS选择器,那些让你激动的新特性 联通WO+开放平台“App计费 ” 保障手机应用付费安全 提示 一个很重要又很常见的问题。 请问有什么调试工具来调试asp程序 一方有难,八方支援,我有疑难,你能否来? 请问使用STL如何将字符串变成大写 OOAD 我对这段代码很困惑!!不知为何出错,请大虾指点一二!!! SQL Server数据库中支持的数据表的最大数是多少? 有会用SDL(Simple DirectMedia Layer)的么? 如何重新启动电脑啊 ooad 有人对xml文档及schema映射为数据库的记录和表作过研究吗? 窗体启动时,Load之后是什么事件 安装好了J2EESDK1。4后怎样运行JAVA程序? 有关DBGrid的问题 IBM的硬盘是不是很菜!惨啊!奉劝大家多多备份,不要买IBM的盘 合格的程序员应该具备哪些知识和技能? 在报表中如何显示出来----共n页/第几页 急寻广州深圳两地图书城管理软件公司 用jdk写出的application里的汉字很难看,有没有解决的办法? 面向对象分析与设计 那位有<<java大学教程>>的光盘,可不可以把光盘上的附录部分发给我!(100分) 关于win2000中的odbc的问题 vfw 软件工程师和程序员有什么不同? 一方有难,八方支援,我有疑难,你能否来? 唉。 发现有人还在吃糠。。。。痛心ing.............. 为什么我连不到mysql? 有什么比做ghost更好的硬盘数据备份方法? 请教:在dataGrid 中如何根据行值的不同,设置不同的颜色 一般菜的问题,不知道你遇到过没有,请大家过来看一下 分析与设计 3D場景鋸齒消除問題 一方有难,八方支援,我有疑难,你能否来? 发布新软件,请帮助测试 一个白痴问题!哪个函数可以去除字符串中的空格? 在两台服务器上的数据库间创建触发器的注意事项? 有一好的想法,但途中这个问题搞不定 各位高手,请问用API怎样获得本机的网卡的IP地址 面向对象ooad 有没有类似deltree功能的函数啊? weblogic初级问题 小问题, 如何把个DBIMAGE里的图片复制到剪贴板里去?? 如何正确更新ADO的记录 分全给出,各位大侠看一看为什么动态库中的窗体调不出来:。。。。 更佳编程之路(转贴) 菜鸟问什么是水晶报表? 我的第一次发问? 集思广益整理一下有关类型转换的函数!(出力的都有分!!!不够再加!!) 有高分!有高分!有高分!有高分! 大家都用什么工具来做J2ME开发?调查一下!!! 北纬27.7度,东经119.9度是什么地方 刚结束的一道中考物理题弹古筝时,演奏者的另一只手不断变换按弦的位置,这是为了改变弦发声时的A振幅B响度C音色D音调因为答案有分歧,所以希望你们给出答案时给个解释,我加10分 1 下列说法正确的是:A 匀速圆周运动是一种匀变速曲线运动B 向心力加速度描述线速度变化的快慢C 航天飞机中的物体处于失重状态,是因为地球对它的吸引力全部用来提供向心力D 做圆周运动 北纬:26.7 东经:119.9 这是在哪里?如题 室内要替换60W的白炽灯用多少的节能灯 低碳生活是指什么 北纬31.6,东经115.9 在哪 第二题,解方程, 22.单项选择( )22.---Are his pens ____________ desk?---Yes,____________ are.A.on his,it B.on my,you C.on his,they D.his,it’s 全站仪中的后视方位角是属于平面角吗? 5、如图所示,水平放置的两条光滑轨道上有可自由移动的金属棒PQ,MN,当PQ在外力的作用下运动时,MN在磁场力作用下向右运动,则PQ所做的运动可能是 A.向右匀加速运动 B.向左匀加速运动C.向 2012 年2月10号星期五下的雪周记 急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急急 全站仪对边测量能测出方位角吗?前提条件是什么 如图所示,水平放置的两条光滑轨道上有可自由移动的金属棒PQ,MN,MN的左边有一闭合如图所示,水平放置的两条光滑轨道上有可自由移动的金属棒PQ、MN,MN的左边有一闭合电路,当PQ在外力作用下 关于雪的周记!明天就交了, 袋内有7个白球,4个黑球,从中一次任取两个,求取到的两个球颜色不同的概率.我知道这题怎么写,我只想有人告诉我为什么用C算法,C算法怎么用? 例、如图所示,水平放置的两条光滑轨道上有可自由移动的金属棒 PQ 、 MN ,当 PQ 在外力作用下运动时,MN 在磁场力的作用下向右运动,则 PQ 所做的运动可能是( BC )A .向右加速运动B .向左加 周记怎么写啊?急 在用全站仪测量完后,不知道什么是观测角在工程开工的前期准备工作中,导线点侧完后,我不会进行闭合的计算?/ 我想请教专家级别的人来回答.有一个叫“观测角”的它的定义是什么,怎 现有甲“220伏100瓦”、乙“110伏100瓦”、丙“36伏100瓦”三个灯泡,分别在额定电压下工作哪个灯最亮 谁能给一篇关于校园的周记!400字左右的! 什么颜色的汽车最安全 什么颜色的汽车最安全?①科学研究发现,人们挑选什么颜色的车,与车主职业、性格有很大关系.但是你也许并不知道,汽车颜色还与安全有关.澳大利亚最大的汽车保险公 四年级上册简算60 全站仪坐标放样要分盘左盘右吗? 反比例函数选择题 全站仪的测量!要测量两点之间的边长,怎么办?要先对准第一点、然后对准第二点,然后按测量么?急我按测量以后SD处好长时间不出现数据,这是什么原因。是不是必须照准楞镜? 四年级上册简算1390-390÷15怎样算? 光合色素能等同于叶绿素吗?它们之间的关系是什么样的? 第2题选择 如图所示,电源电动势为12V,内电阻为1 Ω ,R1=3 Ω ,R2=2 Ω ,R3=4 Ω ,C1=4µF,C2=1µF ,则C1所带电量为多少C,C2所带电量为多少C. 一个220V 40W的灯泡,它正常工作时的功率是?通过灯丝的电流是?每分钟电流做的功是? 选择第2题 C5H12 是什么东西啊 它的碳原子可能共面么 什么颜色的车最安全阅读答案 第二题选择 低碳生活是指什么啊? [230000*0.42075%*(1+0.0.42075%)^120]/[(1+0.42075%)^120-1]=? 1.Read the following passage and provide a title for it.If we examine this question of the composer’s individual character more closely,we shall discover that it is really made up of two distinct elements:the personality with which he was born and C5H12的碳原子为什么不共面我知道每个CH3是空间正四面体,但C原子可以共面啊 正戊烷分子中的5个C原子是可以共面吗?我们老师说不能。 质量为m的小球A,沿光滑水平面以v的速度与质量为3m的静止小球B发生正碰.碰后A球的速度可能是( )A.v/4,与B球速度同向 B.v/3,与B球速度同向C.v/2,与B速度反向 D.2v/3,与B速度反向 一个长方形的周长是12厘米,长和宽均为整厘米数.这个长方形的面积可能是多少?请写出所有的可能. C5H12的碳原子是否在同一平面内 第二题选几 2012浦东新区高三二模英语听力前的音乐是什么?如题 英语 单项选择 (31 20:10:12)The rain was ____ heavy ____Cindy had to stop to buy an umbrella.A.too toB.so thatC.such thatD.as as选哪个?为什么? 第2题该选什么 几个化学计算题1.在化合物AB3(3是B的下标),元素质量比A:B=2:3,B的相对原子质量是16,求A的相对原子质量.2.某化合物5.2克在氧气中充分燃烧,生成17.6克二氧化碳和3.6克水,若此化合物的式量为26 al最高价氧化物的水化物是什么?(请写出方程式) 全站仪竖直角怎么算 (2013•上海)甲、乙两车分别从P、Q两点同时同向运动,它们的s-t...(2013•上海)(2013•上海)甲、乙两车分别从P、Q两点同时同向运动,它们的s-t... (2013•上海)甲、乙两车分别从P、Q两 碘的最高价氧化物对应的水化物分子式是什么 120:15=x:0.8 小明对风力的研究也产生了浓厚的兴趣,和同学一起设计了“风力测试仪”的原理图,如图23所示,已知电源电压12V,R0为20Ω,OB长为10cm,AB长为20cm、阻值为60Ω的均匀电阻丝.OP为质量、电阻均不计的 英语 英语的烦恼 (27 20:12:5)我什么英语成绩提不高  45+x/0.8=120 如图所示,空间内存在两个磁场,磁感应强度大小均为B,方向相反且垂直纸面,MN,PQ为其边界如图所示,空间存在两个磁场,磁感应强度大小均为B,方向相反且垂直纸面,MN、PQ为其边界,OO′为其对称轴 最高价氧化物的水化物中,酸性最强的化合物的分子式是什么,名称是什么? 第2题为什么选A? 一道中考物理题如图16所示,甲是小艳利用某透镜观察到的小明眼睛的像;乙是小亮利用某眼镜观察到的课本上“物理”字的像.关于上述两种情况中所观察到的像或用到的光学仪器,下列说法 Al的最高价氧化物与cl的最高价氧化物的水化物反应式急,请速回要离子方程式
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘