android用户界面-组件Widget-地图视图MapView

简介:

一、在Google地图上显示本地的位置。

1、首先注意在AndroidManifest.xml文件中,增加权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

在application中activity外,增加:uses-library

<uses-library android:name="com.google.android.maps" />

 

 

2、在类中,将extends Activity改为extends MapActivity

3、设置可放大缩小地图的控件。

在xml文件中,添加以下内容:

<LinearLayout android:orientation="vertical" 
android:layout_width="wrap_content" android:layout_height="wrap_content" 
android:id="@+id/zoom" android:layout_alignParentBottom="true" 
android:layout_centerHorizontal="true" > 
</LinearLayout>

在类中,加入:

LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom); 
View zoomView = mapView.getZoomControls(); 
zoomLayout.addView(zoomView, 
new LinearLayout.LayoutParams( 
LayoutParams.WRAP_CONTENT, 
LayoutParams.WRAP_CONTENT)); 
mapView.displayZoomControls(true);

mapView.getController().setZoom(14);//设置缩放级别 
p = this.getCurrentGeoPoint(); 
mapView.getController().animateTo(p);// 通过动画方式移动到指定坐标s

4、通过以下方法得到当前位置的经纬度

private GeoPoint getCurrentGeoPoint() { 
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
Location location = locationManager 
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 
return new GeoPoint((int) (location.getLatitude() * 1e6), 
(int) (location.getLongitude() * 1e6)); 
}

5、通过以下方式显示当前位置在地图上显示:

class MapOverlay extends com.google.android.maps.Overlay 

@Override 
public boolean draw(Canvas canvas, MapView mapView, 
boolean shadow, long when) 

super.draw(canvas, mapView, shadow); 
//—translate the GeoPoint to screen pixels— 
Point screenPts = new Point(); 
mapView.getProjection().toPixels(p, screenPts); 
//—add the marker— 
Bitmap bmp = BitmapFactory.decodeResource( 
getResources(), R.drawable.pushpin); 
canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null); 
return true; 

}

在oncreate方法中,加入:

MapOverlay mapOverlay = new MapOverlay(); 
List<Overlay> listOfOverlays = mapView.getOverlays(); 
listOfOverlays.clear(); 
listOfOverlays.add(mapOverlay);

这样就能在屏幕中显示你当前位置的地图显示了;

如下图:

 

 

源代码见:http://henzil.googlecode.com/svn/trunk/android.googleMap01/

二、输入地址,在地图上显示相应的位置。此方法是通过查询地址名称,返回一个list结果。在地图上显示:

此方法与上述方法基本一致,不同之处在于:是用getFromLocationName方法,来查询目的地的经纬度。

如下代码:

// 通过系统默认区域设置进行地图定位 
Geocoder gc = new Geocoder(this); 
mapView.setStreetView(true); 
try { 
// 通过地址名称描述返回一个查询结果的数组(后面参数为返回最大结果数) 
addresses = gc.getFromLocationName(address, 5);

// 如果未查询到任何结果 
if (addresses != null) { 
geoPoint = new GeoPoint( 
// 返回纬度,经度 
(int) (addresses.get(0).getLatitude() * 1E6), 
(int) (addresses.get(0).getLongitude() * 1E6));

setTitle(addresses.get(0).getFeatureName()); 
MyOverlay myOverlay = new MyOverlay(); 
mapView.getOverlays().add(myOverlay); 
mapView.getController().setZoom(16); 
mapView.getController().animateTo(geoPoint); 

} catch (Exception e) { 
e.printStackTrace(); 
}

如下图所示:

 

 

 


本文转自linzheng 51CTO博客,原文链接:http://blog.51cto.com/linzheng/1080684

 

相关文章
|
4月前
|
缓存 前端开发 Android开发
安卓开发中的自定义视图:从零到英雄
【10月更文挑战第42天】 在安卓的世界里,自定义视图是一块画布,让开发者能够绘制出独一无二的界面体验。本文将带你走进自定义视图的大门,通过深入浅出的方式,让你从零基础到能够独立设计并实现复杂的自定义组件。我们将探索自定义视图的核心概念、实现步骤,以及如何优化你的视图以提高性能和兼容性。准备好了吗?让我们开始这段创造性的旅程吧!
68 1
|
4月前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
5月前
|
Android开发 开发者
安卓应用开发中的自定义视图
【9月更文挑战第37天】在安卓开发的海洋中,自定义视图犹如一座座小岛,等待着勇敢的探索者去发现其独特之处。本文将带领你踏上这段旅程,从浅滩走向深海,逐步揭开自定义视图的神秘面纱。
58 3
|
5月前
|
存储 Android开发 开发者
深入理解安卓应用开发的核心组件
【10月更文挑战第8天】探索Android应用开发的精髓,本文带你了解安卓核心组件的奥秘,包括Activity、Service、BroadcastReceiver和ContentProvider。我们将通过代码示例,揭示这些组件如何协同工作,构建出功能强大且响应迅速的应用程序。无论你是初学者还是资深开发者,这篇文章都将为你提供新的视角和深度知识。
|
5月前
|
数据可视化 Android开发 开发者
安卓应用开发中的自定义View组件
【10月更文挑战第5天】在安卓应用开发中,自定义View组件是提升用户交互体验的利器。本篇将深入探讨如何从零开始创建自定义View,包括设计理念、实现步骤以及性能优化技巧,帮助开发者打造流畅且富有创意的用户界面。
159 0
|
3月前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
82 19
|
3月前
|
XML 搜索推荐 前端开发
安卓开发中的自定义视图:打造个性化UI组件
在安卓应用开发中,自定义视图是一种强大的工具,它允许开发者创造独一无二的用户界面元素,从而提升应用的外观和用户体验。本文将通过一个简单的自定义视图示例,引导你了解如何在安卓项目中实现自定义组件,并探讨其背后的技术原理。我们将从基础的View类讲起,逐步深入到绘图、事件处理以及性能优化等方面。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
4月前
|
搜索推荐 前端开发 Android开发
安卓开发中的自定义视图——打造个性化用户界面
在安卓应用开发的广阔天地里,自定义视图是实现个性化界面设计的重要手段。通过深入理解安卓绘图基础、触摸事件处理和布局机制,开发者可以突破标准控件的限制,创造出独一无二的用户体验。本文将引导你探索自定义视图的核心概念,提供实用的代码示例,并分享如何有效地解决开发过程中可能遇到的挑战。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇通往创新和个性化的大门。
|
4月前
|
搜索推荐 前端开发 Android开发
安卓应用开发中的自定义视图实现
【10月更文挑战第30天】在安卓开发的海洋中,自定义视图是那抹不可或缺的亮色,它为应用界面的个性化和交互体验的提升提供了无限可能。本文将深入探讨如何在安卓平台创建自定义视图,并展示如何通过代码实现这一过程。我们将从基础出发,逐步引导你理解自定义视图的核心概念,然后通过一个实际的代码示例,详细讲解如何将理论应用于实践,最终实现一个美观且具有良好用户体验的自定义控件。无论你是想提高自己的开发技能,还是仅仅出于对安卓开发的兴趣,这篇文章都将为你提供价值。
|
5月前
|
XML 前端开发 Java
安卓应用开发中的自定义View组件
【10月更文挑战第5天】自定义View是安卓应用开发的一块基石,它为开发者提供了无限的可能。通过掌握其原理和实现方法,可以创造出既美观又实用的用户界面。本文将引导你了解自定义View的创建过程,包括绘制技巧、事件处理以及性能优化等关键步骤。

热门文章

最新文章

  • 1
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 2
    Android历史版本与APK文件结构
  • 3
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
  • 4
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
  • 10
    escrcpy:【技术党必看】Android开发,Escrcpy 让你无线投屏新体验!图形界面掌控 Android,30-120fps 超流畅!🔥