我在屏幕的一角有一个Google mapview.我想添加一个事件,通过地图界面上的按钮使其全屏显示,然后使用相同按钮再次显示小屏幕.有任何想法吗??
Android v4.0.4
Google Map API V2
解决方法
你可以通过2种方式做到这一点:
>创建一个新的活动,按下按钮将开始,并将包括一个全屏地图.在此活动中创建相同的按钮,将您带回原始活动.
>您可以在同一窗口中以编程方式将布局宽度更改为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的大小,您可以将按钮放在相同的布局中,例如将其放在右上角.当你的地图拉伸时,按钮仍然会在同一个右上角.