我在我的应用程序中使用Google Maps v2作为片段中的mapview。 但它在屏幕的顶部和底部显示空白屏幕,如附带的屏幕截图所示。
请帮我解决这个问题。
以下是布局
<RelativeLayout
android:id="@+id/resourceMapLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.google.android.gms.maps.MapView
android:id="@+id/resourceScreenMapView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
以下是用于它的代码:
mMpVwInstance = (MapView) view.findViewById(R.id.resourceScreenMapView);
mMpVwInstance.onCreate(mBundle);
mGglMapinstance = mMpVwInstance.getMap();
mGglMapinstance.setMyLocationEnabled(true);
mGglMapinstance.setOnMarkerClickListener(this);
答案 0 :(得分:3)
您的应用程序显示的是网格而不是地图,这清楚地表明您的MAP-API密钥不正确。我建议你重新生成你的MAP-API密钥。此外,当您使用这种API时,您需要确保不能直接从eclipse运行应用程序。您必须创建项目的.apk文件,然后安装它,然后只显示Google MAP。
答案 1 :(得分:2)
替换您的代码:
<RelativeLayout
android:id="@+id/resourceMapLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<com.google.android.gms.maps.MapView
android:id="@+id/resourceScreenMapView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
这一个:
<RelativeLayout
android:id="@+id/resourceMapLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/resourceScreenMapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
</RelativeLayout>
如果这不能解决问题,那么请您发布完整代码吗?
答案 2 :(得分:0)
您不想直接引用MapView。 Google Play服务附带了一个片段,可以自动为您处理各种生命周期事件。
用以下代码替换您的布局:
<RelativeLayout
android:id="@+id/resourceMapLayout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<fragment
android:id="@+id/resourceScreenMapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</RelativeLayout>
比你的代码:
final GoogleMap map = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
// This gets the button
map.setMyLocationEnabled(true);
map.setOnMarkerClickListener(this);
关于API密钥的最后一件事。您可以使用您的调试密钥(在eclipse运行时使用的eclipse)进行测试,它位于C:\Users\USER_NAME\.android\debug.keystore
的Windows下。您需要使用调试密钥库中的签名在线注册密钥,并将其添加到清单文件中。