pro*_*etz 5 android google-maps
我在屏幕的一角有一个Google mapview.我想添加一个事件,通过地图界面上的按钮使其全屏显示,然后使用相同按钮再次显示小屏幕.有任何想法吗??
Android v4.0.4 Google Map API V2
你可以通过两种方式做到这一点:
创建一个新的Activity,按下按钮即可启动并包含全屏地图。在此活动中创建相同的按钮,它将带您返回到原来的Activity.
您可以MapFragment在同一窗口中以编程方式更改布局宽度和长度。
第二个选项会更好,因为您可以避免新活动加载时屏幕闪烁。
更新:
关于第二个选项,这里是我编写的代码,用于在地图上点击放大地图,看看这是否对您有帮助:
@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;
}
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我更改了地图所在位置的大小FrameLayout,您可以将按钮放入相同的布局中,并将其放置在右上角|右上角。当您的地图拉伸时,按钮仍将位于同一右上角。
| 归档时间: |
|
| 查看次数: |
5547 次 |
| 最近记录: |