- 浏览: 416948 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
rkikbs:
有下载地址么?
我的iOS视频开放了,欢迎大家在线观看 -
wjpiao:
支持支持!
我的iOS视频开放了,欢迎大家在线观看 -
关东升:
wwwang89 写道关老师,你好 ,请问:我的服务器端是用j ...
iOS网络编程-ASIHTTPRequest框架同步请求 -
wwwang89:
关老师,你好 ,请问:我的服务器端是用java写的,不是.ne ...
iOS网络编程-ASIHTTPRequest框架同步请求 -
关东升:
crowning_2008 写道关老师 好!你好
iOS开发那些事-关于性能优化–选择nib还是故事板的讨论
“定位查询”locate()方法,增加一个线程,在该线程中处理查询地点的功能,请参考代码清单16-10,完整代码请参考chapter16_7工程中src/com/work/map/MyMapActivity.java文件locate()方法代码部分。
【代码清单16-10】
通过下面的代码是实现显示进度条:
progDialog = ProgressDialog.show(MyMapActivity.this, "处理中...", "定位" + findString, true, false);
启动一个子线程,在该线程中实现地点查询,但是不能有更新UI的处理,如果查询成功调用handler.sendEmptyMessage(0),如果失败调用handler.sendEmptyMessage(1)。
new Thread() {
@Override
public void run() {
… …
}
}.start();
在Hander的handleMessage方法中处理更新UI操作,其中成功(case 0)时候清除屏幕上原来的图层,重新添加图层,最后progDialog.dismiss()方法关闭进度条对话框。如果是查询失败(case 1)弹出Toast说明一下,也要通过progDialog.dismiss()方法关闭进度条对话框,否则进度条对话框不会关闭。
出自《Android开发案例驱动教程》第十六章
【代码清单16-10】
/** * 定位查询 */ private void locate() { LayoutInflater factory = LayoutInflater.from(MyMapActivity.this); View locationView = factory.inflate(R.layout.find_dialog, null); final EditText findText = (EditText) locationView .findViewById(R.id.dailog_find); new AlertDialog.Builder(this).setTitle(R.string.dialog_find).setView( locationView).setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { findString = findText.getText().toString(); progDialog = ProgressDialog.show(MyMapActivity.this, "处理中...", "定位" + findString, true, false); new Thread() { @Override public void run() { try { Geocoder geocoder = new Geocoder( MyMapActivity.this); addresses = geocoder.getFromLocationName( findString, 1); if (addresses.size() > 0) { List<OverlayItem> overlayitems = new ArrayList<OverlayItem>(); double lat = addresses.get(0) .getLatitude(); double lng = addresses.get(0) .getLongitude(); // 设定中心点 centerPoit = new GeoPoint( (int) (lat * 1E6), (int) (lng * 1E6)); // 地理坐标 mc.setCenter(centerPoit); Log.i(TAG, " lat " + lat + " lng " + lng); int intMaxAddressLineIndex = addresses .get(0) .getMaxAddressLineIndex(); String address = "地址:"; for (int j = 0; j <= intMaxAddressLineIndex; j++) { if (addresses.get(0) == null) continue; address += addresses.get(0) .getAddressLine(j) + ","; } if (address.endsWith(",")) { address = address.substring(0, address.length() - 1); } String title = ""; if (addresses.get(0).getFeatureName() == null) { title = ""; } else { title = addresses.get(0) .getFeatureName(); } overlayitems.add(new OverlayItem( centerPoit, title, address)); Drawable marker = getResources() .getDrawable( R.drawable.markermap2); locs = new LocationItemsOverlay(marker, overlayitems); handler.sendEmptyMessage(0); } else { handler.sendEmptyMessage(1); } } catch (Exception e) { e.printStackTrace(); handler.sendEmptyMessage(1); } } }.start(); } }).setNegativeButton(R.string.button_cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }).show(); }
通过下面的代码是实现显示进度条:
progDialog = ProgressDialog.show(MyMapActivity.this, "处理中...", "定位" + findString, true, false);
启动一个子线程,在该线程中实现地点查询,但是不能有更新UI的处理,如果查询成功调用handler.sendEmptyMessage(0),如果失败调用handler.sendEmptyMessage(1)。
new Thread() {
@Override
public void run() {
… …
}
}.start();
在Hander的handleMessage方法中处理更新UI操作,其中成功(case 0)时候清除屏幕上原来的图层,重新添加图层,最后progDialog.dismiss()方法关闭进度条对话框。如果是查询失败(case 1)弹出Toast说明一下,也要通过progDialog.dismiss()方法关闭进度条对话框,否则进度条对话框不会关闭。
private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 0: mapView.getOverlays().clear(); mapView.getOverlays().add(locs); progDialog.dismiss(); break; case 1: Toast.makeText(MyMapActivity.this, "暂时无法" + findString + "信息。", Toast.LENGTH_SHORT).show(); progDialog.dismiss(); } } };
出自《Android开发案例驱动教程》第十六章
发表评论
-
智捷课堂改版啦!
2015-08-04 12:09 1新站上线,为庆祝网站改版,全站所有视频限时免费三天(8月5日 ... -
《Android开发案例驱动教程》之十五章云端应用整篇下载
2011-12-08 18:08 1120《Android开发案例驱动教程》15章--云端应用[colo ... -
《Android开发案例驱动教程》源码
2011-12-08 17:57 1292《Android开发案例驱动教程》15,16,17章源码 目 ... -
7.1.5 选项卡结合案例详解
2011-07-27 08:58 1461选项卡是通过TabHost和TabActivity一起实现的, ... -
7.1.4 ScrollView结合案例详解
2011-07-26 17:50 2129ScrollView是一个滚动条控件,当屏幕中内容很多时候需要 ... -
7.1.3 TimePicker结合案例详解
2011-07-25 17:06 3215TimePicker是Android的时间设置控件。TimeP ... -
7.1.2 DatePicker结合案例详解
2011-07-23 15:56 1621DatePicker是Android的日期设置控件。DateP ... -
7.1.1 ImageSwitcher案例分析详解
2011-07-21 10:50 2160ImageSwitcher图像切换器,可以切换器图像。Imag ... -
7.5 TableLayout布局详解
2011-07-20 10:17 2028TableLayout表格布局,将子元素的位置分配到行或列中。 ... -
7.4 AbsoluteLayout布局详解
2011-07-19 16:35 4583AbsoluteLayout绝对布局,指定了子元素准确的x/y ... -
7.3 RelativeLayout布局详解
2011-07-19 14:11 1045RelativeLayout相对布局, 允许子元素指定他们相对 ... -
7.2 LinearLayout布局详解
2011-07-18 10:23 1058LinearLayout线性布局,线性布局是所有布局中最常用的 ... -
6.4 Android国际化和本地化
2011-07-14 15:37 1596何谓国际化和本地化呢?就是在资源文件夹res内建立不同国家语言 ... -
6.1.6 Gallery结合案例详解
2011-07-13 17:04 1490Gallery(相册)控件是个很不错的图片查看控件,屏幕中有一 ... -
6.1.5 GridView详解
2011-07-13 09:25 1713Android中的数据能够通过GridView类实现表格化展现 ... -
6.2 Toast 详解
2011-07-12 17:02 889Toast用于向用户显示一些帮助或提示,有三种展现形式: • ... -
ListView分页(带图片)显示用法案例
2011-07-11 17:01 3130ListView是Android中最为常用的列表类型控件,Li ... -
Spinner用法案例
2011-07-11 15:26 2963Spinner控件也是一种列表类型的控件,它的继承关系如下: ... -
Android多媒体--网络文件播放
2011-07-08 15:22 1793网络文件就是指放在网络上的文件,也可能是流媒体等网络资源。由于 ... -
android多媒体开发--本地音频文件播放
2011-07-08 15:20 5939本地文件就是指文件放在Android系统的外部存储设 ...
相关推荐
在Android开发中,集成Google Maps SDK和Google Location SDK是实现地图展示、定位功能的重要环节。本文将详细讲解如何使用这两个SDK来实现相应的功能,并提供一些关键知识点。 首先,我们需要在项目中添加Google ...
首先,我们需要在Android项目中引入Google Play服务库,因为Google地图和定位功能都是通过这个库提供的。在`build.gradle`(Module)文件中添加以下依赖: ```groovy dependencies { implementation '...
在Android平台上,谷歌定位服务是开发者获取用户地理位置信息的重要工具。这一服务主要通过Google Play服务提供的Location Services API来实现,它允许应用在后台或前台获取精确的定位数据,包括经纬度坐标、速度、...
本文将深入探讨如何实现Android Google 位置定位服务,以及如何在应用中显示这些位置信息。 首先,我们需要引入必要的依赖。在`build.gradle`模块文件中添加Google Play服务库,特别是位置服务部分: ```groovy ...
在Android开发中,地图定位是一项常见的需求,而Google Maps SDK为开发者提供了强大的地图服务功能。本文将详细讲解如何使用Android Studio结合谷歌地图SDK来实现地图定位、实时位置更新、坐标与海拔显示以及轨迹...
在Android平台上,Google提供了一套全面的定位服务,使得开发者能够轻松实现基于GPS、Wi-Fi基站和移动网络的综合定位功能。这篇文档将详细介绍如何在Android应用中利用这些技术进行定位。 首先,我们需要理解...
在Android开发中,GoogleMap API是一个非常重要的工具,它允许开发者在应用中集成地图功能,实现定位、导航、路线规划等复杂操作。本篇将详细探讨如何在Android应用中使用GoogleMap进行定位。 首先,我们需要在项目...
在Android开发中,Google定位服务是开发者们常用的一种获取用户位置信息的方式。本文将深入探讨如何在Android应用中实现Google定位服务,以及相关的范例应用。Google定位服务提供了丰富的API和工具,使得开发者能够...
Google定位服务是Android系统中集成的一套API,它允许应用程序通过多种途径(如GPS、Wi-Fi、移动网络)获取设备的位置信息。这套服务包括Fused Location Provider(融合位置提供者),它可以智能地结合不同定位源,...
androiid P高通平台仅支持gps定位,此patch为使平台支持网络定位。由于需要使用google定位服务,必须在外网环境下才能定位成功,并且第一次定位时间较长。
通过以上步骤,我们就成功地在Android应用中集成了Google Maps,实现了通过GPS定位显示用户位置的功能。当然,这只是基础实现,实际应用中可能还需要考虑更多细节,如错误处理、用户隐私政策、地图样式自定义等。...
在“Android-Android定位基于百度基础定位sdk封装”项目中,开发者已经对原始的百度地图SDK进行了封装,创建了一个易于集成和使用的库。这个库可能包含了如下的功能: 1. **初始化配置**:封装了初始化百度定位服务...
在Android开发环境中,Android Studio是谷歌官方推荐的集成开发环境(IDE),对于移动开发者来说,它是构建Android应用程序的首选工具。本篇文章将深入探讨“Android Studio定位”这一主题,包括如何在Android ...
在移动设备上,尤其是Android系统,定位服务是不可或缺的功能之一。Android WiFi LBS(Location-Based Services,基于位置的服务)定位是通过结合WiFi网络信号和移动通信基站信息来确定设备的位置。这种定位方式在...
开发者可以使用` fusedLocationProviderClient `(Google Play Services中的Fused Location Provider API)来获取更高效和准确的定位服务。 4. 博文链接: 提供的博文链接指向了一个ITeye上的博客文章,作者分享了...
- "GSP权限申请"可能指的是Google Play服务(Google Play Services)中的定位权限申请。Google Play服务提供了`Fused Location Provider`,它是一个高效的位置服务,能够结合多种定位源,如GPS、Wi-Fi和移动网络,...
尽管现在的Android开发更倾向于使用Google Play Services的FusedLocationProviderClient,但对于学习和理解Android定位机制的基础概念,这段代码仍具有参考价值。不过,实际应用中应考虑更多的因素,如定位精度、...
压缩包中的"第16章 Android中的googlemap服务.pdf"和"16_01_Android中的googlemap服务.pdf"可能涉及到如何在Android应用中集成Google Maps,展示定位标记,以及实现地图交互功能。Google Maps API允许我们在地图上...
在Android平台上,实现“后台定时定位”涉及到多个关键知识点,包括Android服务(Service)、位置API、后台运行限制以及电量和性能优化。以下是对这些概念的详细说明: 1. **Android服务(Service)**:Android ...
在Android开发中,集成高德地图进行移动定位是一项常见的需求,尤其对于开发地理位置相关的应用来说至关重要。本示例主要讲解如何在Android应用中使用高德地图API实现2D定位功能,适合初学者入门。首先,我们需要...