我在屏幕的一角有一个Google mapview。我想添加一个事件,通过地图界面上的按钮使其全屏显示,然后使用相同的按钮再次显示小屏幕。任何想法??
Android v4.0.4 Google Map API V2
答案 0 :(得分:3)
你可以通过2种方式做到这一点:
创建一个新的Activity
,按下按钮即可开始,并将包含一个全屏地图。在此活动中,创建相同的按钮,将您带回到原始Activity
。
您可以在同一窗口中以编程方式更改布局宽度MapFragment
的长度。
第二个选项会更好,因为你可以避免新活动加载的屏幕闪烁。
更新:
关于第二个选项这里是一个代码我写的放大地图onClick地图看看这是否有助于你:
@Override
public void onMapClick(LatLng point)
{
LinearLayout mapFrameLayout = (LinearLayout)findViewById(R.id.mapFrameLayout);
if (!isMapOpen)
{
LinearLayout.LayoutParams fullMapParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
if (!isDetailsOpen)
{
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.hide(closedDetailsFragment).commit();
mapFrameLayout.setLayoutParams(fullMapParams);
isMapOpen = true;
isDetailsOpenWhenOpenedMap = false;
}
else
{
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.hide(openedDetailsFragment).commit();
mapFrameLayout.setLayoutParams(fullMapParams);
isMapOpen = true;
isDetailsOpenWhenOpenedMap = true;
}
}
else
{
LinearLayout.LayoutParams defaultMapparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 280);
mapFrameLayout.setLayoutParams(defaultMapparams);
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if (isDetailsOpenWhenOpenedMap)
{
fragmentTransaction.show(openedDetailsFragment).commit();
}
else
{
fragmentTransaction.show(closedDetailsFragment).commit();
}
isMapOpen = false;
}
}
如您所见,我更改了地图所在的FrameLayout
的大小,您可以将按钮放在相同的布局中,例如将其放在右上角。当你的地图拉伸时,按钮仍然会在同一个右上角。
答案 1 :(得分:0)
点击全屏幕地图启动新活动,你需要所有按钮/功能..在启动intenet时使用putExtra传递重新加入的参数(例如位置坐标)和瞧...;)