读书人

在Tab View中平添MapView

发布时间: 2012-08-07 14:54:49 作者: rapoo

在Tab View中添加MapView

?

Application outline
  1. Draw two empty tabs
  2. Show map on the first tab

在Tab View中平添MapView
?

1. Setup obtain maps api key

Follow Maps Add-On documentation, eventually you should obtain a key for your application.

Your key is: 0pFtdSwta8EMTfArj32ycOw2kZg0LSEqa4fUGFA

This key is good for all apps signed with your certificate whose fingerprint is:

09:27:FE:8B:32:A5:AB:49:2A:30:97:0A:67:7A:EE:E2

Here is an example xml layout to get you started on your way to mapping glory:

?

<com.google.android.maps.MapView    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:apiKey="0pFtdSwta8EMTfArj32ycOw2kZg0LSEqa4fUGFA"/>

?

Check out the?API documentation?for more information.

2. Layout


在Tab View中平添MapView

<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android"   android:id="@android:id/tabhost"   android:layout_width="fill_parent" android:layout_height="fill_parent">   <LinearLayout android:orientation="vertical"     android:layout_width="fill_parent" android:layout_height="fill_parent">      <TabWidget android:id="@android:id/tabs"         android:layout_width="fill_parent" android:layout_height="wrap_content"/>      <FrameLayout android:id="@android:id/tabcontent"         android:layout_width="fill_parent" android:layout_height="fill_parent">          <RelativeLayout android:id="@+id/emptylayout1" android:orientation="vertical"             android:layout_width="fill_parent" android:layout_height="fill_parent"/>          <TextView android:id="@+id/textview2"             android:layout_width="fill_parent"               android:layout_height="fill_parent"             android:text="Details Details Details Details"/>      </FrameLayout>   </LinearLayout></TabHost>

?

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/maptablayout" android:orientation="vertical"    android:layout_width="fill_parent" android:layout_height="fill_parent">    <com.google.android.maps.MapView android:id="@+id/mapview"       android:layout_width="fill_parent" android:layout_height="fill_parent"       android:clickable="true"        android:apiKey="0pFtdSwta8EMTfArj32ycOw2kZg0LSEqa4fUGFA"/></RelativeLayout>

?

Application code
This would be application entry point after we'll enhance this code with more details
package com.kroz.tag;import android.app.TabActivity;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.widget.FrameLayout;import android.widget.TabHost;import android.widget.TabHost.TabSpec;public class AppMain extends TabActivity  { TabHost mTabHost; FrameLayout mFrameLayout; /** Called when the activity is first created.*/ @Override public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);    mTabHost = getTabHost();    TabSpec tabSpec = mTabHost.newTabSpec("tab_test1");    tabSpec.setIndicator("Map");    Context ctx = this.getApplicationContext();    Intent i = new Intent(ctx, MapTabView.class);    tabSpec.setContent(i);    mTabHost.addTab(tabSpec);    mTabHost.addTab(mTabHost.newTabSpec("tab_test2").setIndicator("Details").setContent(R.id.textview2));    mTabHost.setCurrentTab(0); }}
?
package com.kroz.tag;import android.os.Bundle;import com.google.android.maps.MapActivity;public class MapTabView extends MapActivity { @Override protected void onCreate(Bundle icicle) {    super.onCreate(icicle);    setContentView(R.layout.maptabview); } @Override protected boolean isRouteDisplayed() {   return false; }}
?

Manifest (AndroidManifest.xml)

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"   package="com.kroz.tag" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name">    <uses-library android:name="com.google.android.maps"/>    <activity android:name=".AppMain" android:label="@string/app_name">       <intent-filter>           <action android:name="android.intent.action.MAIN"/>           <category android:name="android.intent.category.LAUNCHER"/>       </intent-filter>    </activity>    <activity android:name="MapTabView" android:label="@string/mapview_name">       <intent-filter>          <category android:name="android.intent.category.EMBED"></category>          <action android:name="android.intent.action.MAIN"></action>       </intent-filter>    </activity>  </application> <uses-sdk android:minSdkVersion="3"/> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission></manifest>

?

Get example sources: http://www.kroztech.com/res/android_cookbook/src/MapTabViewDemo.zip

?

转自:http://vkroz.wordpress.com/2009/07/03/programming-android-%E2%80%93-map-view-within-tab-view/

?

读书人网 >移动开发

热点推荐