画面の隅にGoogleマップビューがあります。マップインターフェイスのボタンを使用して全画面表示にし、次に同じボタンを使用して再び小画面にするイベントを追加したいと思います。何か案は??
Android v4.0.4 Google Map API V2
画面の隅にGoogleマップビューがあります。マップインターフェイスのボタンを使用して全画面表示にし、次に同じボタンを使用して再び小画面にするイベントを追加したいと思います。何か案は??
Android v4.0.4 Google Map API V2
あなたは2つの方法でこれを行うことができます:
Activity
ボタンを押すと開始され、フルスクリーンマップが含まれる新しいものを作成します。このアクティビティでは、元のに戻るのと同じボタンを作成しますActivity
。
MapFragment
同じウィンドウで、プログラムでレイアウト幅を自分の長さに変更できます。
新しいアクティビティの読み込みで画面がちらつくのを避けるため、2番目のオプションの方が適しています。
アップデート:
ここでの2番目のオプションに関しては、地図を拡大するために私が書いたコードです。地図をクリックして、これが役立つかどうかを確認してください。
@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
とおり、マップが配置されている場所のサイズを変更すると、同じレイアウトでボタンを配置して、たとえば右上隅に配置できます。マップが伸びるとき、ボタンは同じ右上隅にあります。
フルスクリーンマップとそこに必要なすべてのボタン/機能を使用してクリックで新しいアクティビティを開始します。インターネットの開始時にputExtraを使用して再取得されたパラメータを渡します(たとえば、位置座標)。