两个星期前开始接触Android,学习了如何如何配置Android开发环境,简单来说,首先要在Eclipse安装ADT插件,安装完毕以后再配置sdk,当然啦,配置之前要先安装Android sdk(相当于java当中的jdk),在sdk中,可以继续的下载所需要用到的架包,比如我们要开发一个类似谷歌地图的软件,就需要下载google map的相关架包。
因为是第一次接触这个,为开发环境就忙活了很长事件,后来制作地图,又需要什么密钥,又忙活了很久,最后终于搞定了。
好久没看Android了,今天听了报告,决心接下来的时间好好的跟着队长把我们的齐鲁软件大赛的参赛作品商议和制作一下,时不待人,说做就要抓紧事件做。
今天我的工作主要就是通过坐标找到我想要的城市,并显示在手机模拟器中。
1.在main.xml文件中编写布局代码:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainlayout" 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:text="@string/hello" /> <com.google.android.maps.MapView android:id="@+id/mapview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:clickable="true" android:apiKey="你的谷歌密钥" /> <LinearLayout android:id="@+id/zoomview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@id/mapview" android:layout_centerHorizontal="true"> </LinearLayout> </RelativeLayout>
布局很简单,就是一个文本域,一个地图显示,一个缩放控制。
2.接下来是AndroidManifest.xml配置文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.zbvc.google"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MapMain"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-library android:name="com.google.android.maps" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
3.接下来是地图显示的代码:首先是Mapmain.java:
package cn.zbvc.google;
import java.util.List;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.ZoomControls;
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;
public class MapMain extends MapActivity {
/** Called when the activity is first created. */
private MapView mapView;
private MapController mapController;
private TextOverlay textOverlay;
private ZoomControls zoom;
private LinearLayout lin;
//设定经纬度
public Double a = 36.645 * 1E6;
public Double b = 117.014 * 1E6;
@SuppressWarnings("deprecation")
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取地图
mapView = (MapView)findViewById(R.id.mapview);
//获取缩放控制对象
zoom = (ZoomControls)mapView.getZoomControls();
//获取线性布局对象
lin = (LinearLayout)findViewById(R.id.zoomview);
lin.addView(zoom);
//获取MapController
mapController = mapView.getController();
//转化坐标为地图中心
GeoPoint point = new GeoPoint(a.intValue(),b.intValue());
//放大层级
mapController.setCenter(point);
mapController.setZoom(11);
//将地图显示区域的中心移动到显示中心
mapController.animateTo(point);
//使用覆盖物,初始化坐标
textOverlay = new TextOverlay(a,b);
//获取覆盖物
List<Overlay> overlays = mapView.getOverlays();
//将覆盖物添加到地图中
overlays.add(textOverlay);
//设定地图显示模式是否为卫星模式
mapView.setSatellite(false);
}
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}