- 浏览: 534341 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
main.xml:
AndroidManifest.xml:
Activity01:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/TextView01" /> <com.google.android.maps.MapView android:id="@+id/MapView01" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="0axCo4Wu7FStW2yuF-kfg0X8Rr50919GvKpiCrA" /> </LinearLayout>
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.magus.location" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <uses-library android:name="com.google.android.maps" /> <activity android:name="Activity01" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> </manifest>
Activity01:
package com.magus.location; import java.io.IOException; import java.util.List; import java.util.Locale; import com.google.android.maps.GeoPoint; import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; import com.google.android.maps.Overlay; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Point; import android.location.Address; import android.location.Criteria; import android.location.Geocoder; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class Activity01 extends MapActivity { public MapController mapController; public MyLocationOverlay myPosition; public MapView myMapView; private static final int ZOOM_IN = Menu.FIRST; private static final int ZOOM_OUT = Menu.FIRST + 1; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 取得LocationManager实例 LocationManager locationManager; String context = Context.LOCATION_SERVICE; locationManager = (LocationManager) getSystemService(context); myMapView = (MapView) findViewById(R.id.MapView01); // 取得MapController实例,控制地图 mapController = myMapView.getController(); // 设置显示模式 myMapView.setSatellite(true); myMapView.setStreetView(true); // 设置缩放控制,这里我们自己实现缩放菜单 myMapView.displayZoomControls(false); // 设置使用MyLocationOverlay来绘图 mapController.setZoom(17); myPosition = new MyLocationOverlay(); List<Overlay> overlays = myMapView.getOverlays(); overlays.add(myPosition); // 设置Criteria(服务商)的信息 Criteria criteria = new Criteria(); // 经度要求 criteria.setAccuracy(Criteria.ACCURACY_FINE); criteria.setAltitudeRequired(false); criteria.setBearingRequired(false); criteria.setCostAllowed(false); criteria.setPowerRequirement(Criteria.POWER_LOW); // 取得效果最好的criteria String provider = locationManager.getBestProvider(criteria, true); // 得到坐标相关的信息 Location location = locationManager.getLastKnownLocation(provider); // 更新坐标 updateWithNewLocation(location); // 注册一个周期性的更新,3000ms更新一次 // locationListener用来监听定位信息的改变 locationManager.requestLocationUpdates(provider, 3000, 0, locationListener); } private void updateWithNewLocation(Location location) { String latLongString; TextView myLocationText = (TextView) findViewById(R.id.TextView01); String addressString = "没有找到地址\n"; if (location != null) { // 为绘制标志的类设置坐标 myPosition.setLocation(location); // 取得经度和纬度 Double geoLat = location.getLatitude() * 1E6; Double geoLng = location.getLongitude() * 1E6; // 将其转换为int型 GeoPoint point = new GeoPoint(geoLat.intValue(), geoLng.intValue()); // 定位到指定坐标 mapController.animateTo(point); double lat = location.getLatitude(); double lng = location.getLongitude(); latLongString = "经度:" + lat + "\n纬度:" + lng; double latitude = location.getLatitude(); double longitude = location.getLongitude(); // 根据地理环境来确定编码 Geocoder gc = new Geocoder(this, Locale.getDefault()); try { // 取得地址相关的一些信息、经度、纬度 List<Address> addresses = gc.getFromLocation(latitude, longitude, 1); StringBuilder sb = new StringBuilder(); if (addresses.size() > 0) { Address address = addresses.get(0); for (int i = 0; i < address.getMaxAddressLineIndex(); i++) sb.append(address.getAddressLine(i)).append("\n"); sb.append(address.getLocality()).append("\n"); sb.append(address.getPostalCode()).append("\n"); sb.append(address.getCountryName()); addressString = sb.toString(); } } catch (IOException e) { } } else { latLongString = "没有找到坐标.\n"; } // 显示 myLocationText.setText("你当前的坐标如下:\n" + latLongString + "\n" + addressString); } private final LocationListener locationListener = new LocationListener() { // 当坐标改变时触发此函数 public void onLocationChanged(Location location) { updateWithNewLocation(location); } // Provider禁用时触发此函数,比如GPS被关闭 public void onProviderDisabled(String provider) { updateWithNewLocation(null); } // Provider启用时触发此函数,比如GPS被打开 public void onProviderEnabled(String provider) { } // Provider的转态在可用、暂时不可用和无服务三个状态直接切换时触发此函数 public void onStatusChanged(String provider, int status, Bundle extras) { } }; protected boolean isRouteDisplayed() { return false; } // 为应用程序添加菜单 public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, ZOOM_IN, Menu.NONE, "放大"); menu.add(0, ZOOM_OUT, Menu.NONE, "缩小"); return true; } public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch (item.getItemId()) { case (ZOOM_IN): // 放大 mapController.zoomIn(); return true; case (ZOOM_OUT): // 缩小 mapController.zoomOut(); return true; } return true; } class MyLocationOverlay extends Overlay { Location mLocation; // 在更新坐标时,设置该坐标,以便画图 public void setLocation(Location location) { mLocation = location; } @Override public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { super.draw(canvas, mapView, shadow); Paint paint = new Paint(); Point myScreenCoords = new Point(); // 将经纬度转换成实际屏幕坐标 GeoPoint tmpGeoPoint = new GeoPoint( (int) (mLocation.getLatitude() * 1E6), (int) (mLocation .getLongitude() * 1E6)); //模拟器上运行时必须先给定一个坐标,否则报空指针,真机运行时打开上面的注释 //GeoPoint tmpGeoPoint = new GeoPoint(35410000, 139460000); mapView.getProjection().toPixels(tmpGeoPoint, myScreenCoords); paint.setStrokeWidth(1); paint.setARGB(255, 255, 0, 0); paint.setStyle(Paint.Style.STROKE); Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.home); canvas.drawBitmap(bmp, myScreenCoords.x, myScreenCoords.y, paint); canvas.drawText("Here am I", myScreenCoords.x, myScreenCoords.y, paint); return true; } } }
发表评论
-
Android中如何模拟一次点击(touch)事件
2014-05-06 10:41 0在Android中有时需要模拟某一个View的touch事件, ... -
Android程序Crash时的异常上报
2014-04-28 18:15 0http://blog.csdn.net/singwhatiw ... -
android程序中证书签名校验的方法
2014-04-28 17:58 2008android程序中证书签名校验的方法一 2013-02 ... -
MD5理解错了,哎
2014-03-17 14:14 0MD5只对数据加密是无法解密的,也就是说,你把100加密后,就 ... -
Android 获取网络时间
2014-03-12 11:42 2046Android 获取网络时间 在网上看到的最常见的方式有: ... -
SQLite清空表并将自增列归零
2014-03-05 18:02 1553SQLite清空表并将自增列归零 作者:Zhu Yanfeng ... -
Handler小看一下
2013-11-11 16:42 0android handler调用post方法还是阻塞 su ... -
Frame Animation小看一下
2013-10-12 16:30 791Demo运行效果图: 源码: -
动画小学一下
2013-10-12 16:14 739转自: http://www.eoeandroid.com/f ... -
Android 动画之ScaleAnimation应用详解
2013-10-12 15:49 1013===============eoeAndroid社区推荐:= ... -
android开发中的一个工具类
2013-06-19 16:04 0package com.wanpu.login.dialog; ... -
android TextView怎么设置个别字体颜色并换行?
2013-06-20 09:25 1693(1)、TextView 设置个别字体颜色 TextView ... -
Android开发之文件下载,状态时显示下载进度,点击自动安装
2013-05-07 15:38 1433在进行软件升级时,需要进行文件下载,在这里实现自定义的文件下载 ... -
android中的状态保存
2013-04-07 14:21 982package com.zzl.call; import ... -
android动画基础:tween动画
2013-04-06 11:21 1252工程结构图: [img] [/img] 四个动画的xml ... -
面试中遇到的几个问题
2013-06-09 11:56 1005SAX与DOM之间的区别 SAX ( ... -
Android获取其他包的Context实例,然后调用它的方法,反射!!!
2013-03-25 10:32 1225Android中有Context的概念,想必大家都知道。Con ... -
Android的内存机制和常见泄漏情形
2013-03-06 16:55 798一、 Android的内存机制 Android的程序由Ja ... -
JUnit测试小小demo
2013-03-06 16:37 1168运行效果图: [img] [/img] 项目结构图 ... -
android开发中的异常小工具
2013-03-04 15:53 901package com.zzl.tools; impor ...
相关推荐
通过研究这个项目,开发者可以学习如何将Google Maps API V2整合到自己的应用中,为用户提供地图导航、位置查找等实用功能。 总结来说,"google map v2 Demo"是一个教学示例,展示了如何在Android应用中使用Google ...
通过分析和学习这个Demo,你可以了解到如何在实际项目中整合这些知识点,实现一个基础的地图查看功能。对于更复杂的地图应用,开发者还需要进一步学习和掌握Qt的高级特性,如并发处理、网络编程以及数据可视化等。
在Android平台上,集成Google地图并实现定位功能是常见的需求,特别是在开发导航、位置服务或地理信息相关的应用时。...通过深入学习Google Maps API,你可以构建出更复杂的地理位置相关的应用程序。
在Android开发中,Google地图API是一个非常重要的工具,它允许开发者在应用程序中集成地图功能,为用户提供导航、定位、...通过不断学习和实践,开发者可以熟练地运用Google Maps API为用户提供更加丰富的地图体验。
"android 高德地图导航demo"是开发者用来学习和实践这些功能的一个实例项目。这个项目可能包含了如何在Android应用中集成高德地图API,创建地图视图,进行地理坐标转换,以及实现路线搜索和导航的基本步骤。下面将...
通过这个小demo,开发者可以学习到如何利用百度地图SDK来获取用户的位置信息,并在地图上显示出来。 首先,我们需要了解百度地图API,它是百度提供的一套用于开发地图应用的接口,支持多种平台,包括Android和iOS。...
【百度地图小demo】是一个基于百度地图...通过这个项目,开发者可以学习到如何在Android应用中集成百度地图,获取和显示用户的位置信息。在实际开发中,可以根据需求扩展功能,如添加路线规划、地理编码、信息窗口等。
在实际项目中,可以根据需求选择合适的地图SDK,通过学习和借鉴这些Demo,可以快速地将地图功能整合进自己的应用,提高开发效率。同时,理解并熟练掌握这两个SDK的使用,将有助于提升开发者在地图应用开发领域的专业...
《ArcGIS for Android HelloWorld Demo详解》 ArcGIS for Android 是Esri公司开发的一款地理信息系统(GIS)开发框架,专门用于构建Android平台上的地理空间应用程序。它提供了丰富的地图展示、地理数据处理、空间...
2. 初始化LocationManager:在Activity或Service中获取LocationManager实例,并注册网络和GPS定位的监听器。 3. 设置定位参数:为LocationManager的请求设置合适的参数,如最小更新距离和时间间隔。 4. 处理定位结果...
在Android开发中,集成高德地图API是常见的需求,它能为应用添加地图展示、定位、路线规划等功能。本文将详细介绍如何在Android...高德地图API提供了丰富的文档和示例代码,可以帮助开发者深入学习和掌握更多高级特性。
本示例中的"高德地图Android版本demo"是高德地图为开发者提供的一个示例项目,旨在帮助开发者快速理解和学习如何在Android应用中集成高德地图的功能。 首先,我们要理解高德地图Android SDK的核心组件和功能。SDK...
这个Demo涵盖了实时定位、地图操作、路线规划、地理编码等功能,对于初学者来说是学习和实践的绝佳素材。 1. **实时定位功能**:在“百度地图Demo”中,实时定位功能是通过调用百度地图SDK的LocationClient类实现的...
在Android平台上,实现定位功能是开发移动应用时的常见需求...通过这个Demo,开发者可以学习到如何初始化SDK、设置定位样式、获取和显示位置信息,以及监听位置变化。这将对理解Android定位原理和实践具有极大的帮助。
【ArcGIS For Android Location Demo】是一个...通过深入学习和实践ArcGIS For Android Location Demo,开发者不仅可以掌握如何在Android应用中实现地理定位,还能了解到如何结合ArcGIS SDK构建功能丰富的地图应用。
这个demo提供了清晰的代码结构,方便复制和学习。 首先,我们要了解百度地图API的核心组件。在Android应用开发中,百度地图SDK提供了MapView类,它是地图显示的基础。MapStatus类则用于管理地图的状态,如缩放、平...
通过详细研究和分析【百度地图SDK使用Demo】中的LBSTest,开发者不仅可以学习到如何使用百度地图SDK的基本功能,还能从中汲取灵感,为自己的项目设计出更丰富的地图交互和视觉效果。同时,这个Demo也适合初学者作为...
2. **初始化地图**:在Activity或Fragment中创建MapView对象,并在布局文件中添加。初始化地图时,需要设置百度地图的API Key,这是你在百度地图开放平台注册应用后获得的唯一标识。 3. **显示地图**:通过MapView...
总的来说,这个"android 百度地图客户端 demo"是一个综合性的学习资源,涵盖了Android开发中与地图交互的多个关键知识点,对于初学者来说,这是一个很好的起点,可以帮助他们快速掌握如何在Android应用中集成和使用...
这个"百度地图demo,可运行"项目就是一个很好的学习和实践平台,它展示了如何在Android应用中有效调用百度接口来实现地图展示和定位功能。 首先,我们需要了解的是AndroidManifest.xml文件中的权限设置。为了使用...