gpt4 book ai didi

android - 更改 StreetView<->Satellite Google Maps Android

转载 作者:太空狗 更新时间:2023-10-29 15:37:17 27 4
gpt4 key购买 nike

我想通过菜单按钮在街景 View 和卫星 View 之间切换我的 GoogleMaps View 。

这是我的代码:

public boolean onCreateOptionsMenu(Menu menu){

menu.add(0, 0, 0, "StreetView");
menu.add(0, 0, 1, "Satellite");

return true;
}

public boolean onOptionsItemSelected (MenuItem item){

switch (item.getItemId()){
case 0:
mapView.setStreetView(true);
return true;

case 1 :
mapView.setSatellite(true);
return true;

}

return false;
}

不会工作..我错了什么?

谢谢,前缀

最佳答案

当您说它不起作用时,我们确实需要更多信息来尝试帮助您!它是否崩溃,它是否停留在街景/卫星 View 或只是正常 map 等,尝试提供更多信息,如果它崩溃发布 logcat 的副本。

我认为你所缺少的只是一行:

(编辑:我只是在没有调用 invalidate 的情况下尝试了它并且它有效所以它必须是菜单按钮 ID)

mapView.invalidate();

为了使 mapView 刷新自身,您需要调用它,因此每次更改 mapView 设置时都要调用它。


如果这不起作用,那么可能是您的 id 在您的开关中无法识别按钮,因此请尝试将您的菜单设置为 xml 文件 int res/menu/,例如:

<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="Street View" android:numericShortcut="1" android:id="@+id/mapStreet" ></item>
<item android:title="Sat View" android:numericShortcut="2" android:id="@+id/mapSat"></item>
</menu>

然后将您的代码修改为:

public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
MenuInflater oMenu = getMenuInflater();
oMenu.inflate(R.menu.mapsmenu, menu);
return true;
}

public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()){
case R.id.mapStreet:
mapView.setStreetView(true);
mapView.setSatellite(false);
mapView.invalidate();
return true;

case R.id.mapSat:
mapView.setSatellite(true);
mapView.setStreetView(false);
mapView.invalidate();
return true;
}
return false;
}

关于android - 更改 StreetView<->Satellite Google Maps Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6471357/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com