0
  1. 这是清单文件

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
    
    <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"/>
    
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <uses-library  android:name="com.google.android.maps"/>
        <activity
            android:name=".MapTestActivity"
            android:label="@string/title_activity_map_test" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    

  2. 这是xml布局文件

    <LinearLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:orientation="horizontal">
    
    
        <Button 
            android:id="@+id/zoom_in"
            android:layout_width="37dp"
            android:layout_height="wrap_content"
            android:text="+"
            android:onClick="mapHandler" />
    
        <Button 
            android:id="@+id/zoom_out"
            android:layout_width="37dp"
            android:layout_height="wrap_content"
            android:text="-"
            android:onClick="mapHandler" />
    
        <Button 
            android:id="@+id/satelite"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Satelite"
            android:onClick="mapHandler" />
    
        <Button 
            android:id="@+id/traffic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Traffic"
            android:onClick="mapHandler" />
    
        <Button 
            android:id="@+id/norm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Normal"
            android:onClick="mapHandler" />
    
    </LinearLayout>
    
    <com.google.android.maps.MapView
        android:id="@+id/map_view"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:enabled="true"
        android:clickable="true"
        android:apiKey="sorry for hiding app id" />
    

  3. 这是java文件

    package com.example.maptest;
    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapView;
    
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.View;
    
    public class MapTestActivity extends MapActivity {
    
        private MapView mapView;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_map_test);
    
            mapView = (MapView) findViewById(R.id.map_view);
            mapView.setBuiltInZoomControls(true);
        }
    
        public void mapHandler(View view) {
            switch(view.getId()){
            case R.id.zoom_in:
                mapView.getController().zoomIn();
                break;
            case R.id.zoom_out:
                mapView.getController().zoomOut();
                break;
            case R.id.satelite:
                mapView.setSatellite(true);
                break;
            case R.id.traffic:
                mapView.setTraffic(true);
                break;
            case R.id.norm:
                mapView.setSatellite(false);
                mapView.setTraffic(false);
                break;
            }
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_map_test, menu);
            return true;
        }
    
        @Override
        protected boolean isRouteDisplayed() {
            // TODO Auto-generated method stub
            return false;
        }
    }
    
  4. 在输出中只有按钮是 display 。我的网络连接也很好

4

4 回答 4

1

您确定放置在布局 xml 中的地图 API 密钥与您用于签署应用程序的证书匹配吗?即使在通过 Eclipse 运行时,也会使用证书——并且该证书必须与 API 密钥匹配。如果没有,地图视图将起作用,但实际上不会显示任何地图图形。

于 2012-10-22T11:13:28.220 回答
0

您需要授予权限ACCESS_MOCK_LOCATION。否则应用程序将不接受您发送的模拟位置。此外,在应用程序接收到某个位置之前,地图不会显示,即您需要使用某些工具(例如,Eclipse 中集成的工具)输入一个位置。

于 2012-10-22T12:01:19.060 回答
0

也许线性布局挡住了整个屏幕!?您将参数设置为:

android:layout_width="match_parent"
android:layout_height="match_parent"

所以它可能会阻止整个父母。你介意在没有按钮和线性布局的情况下尝试吗?也许您可以按照本教程进行操作:http ://www.javacodegeeks.com/2011/02/android-google-maps-tutorial.html

于 2012-10-23T07:27:58.023 回答
0

我在使用 Open Street Maps 时遇到了这个问题。为了解决这个问题,我不得不将 SD 卡放入设备/模拟器中。不确定谷歌地图是否需要相同的。

于 2012-10-22T11:16:32.400 回答