0

画面の左側からスライドして、ユーザーが上部のナビゲーションバーのアイコンをクリックするとMapViewをオーバーレイするオプションのアニメーションメニューが必要なMapViewがあります。

望ましい動作は次のとおりです。1。ユーザーが上部のナビゲーションバーのアイコンをクリックします。2。メニューが左からスライドインし、さまざまなオプションのボタンが表示されます。3.ユーザーがキャンセルするかMapviewに戻るかを選択すると、メニューが右にスライドして消えます。

MapViewの上にこの動作を実装するための最良のアプローチは何ですか?

4

1 に答える 1

1

最初に、マップビューがある同じ XML レイアウトにボタンを追加する必要があります。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <view
        android:id="@+id/mv"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        class="com.google.android.maps.MapView"
        android:apiKey="your key"
        android:clickable="true" />

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linear_layout_buttons"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:orientation="vertical"
    android:paddingRight="5dp" >

    <Button
        android:id="@+id/button_overlay_show_zoom_all"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:paddingBottom="10dp" />

    <Button
        android:id="@+id/button_overlay_previous"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:paddingBottom="10dp" />

    <Button
        android:id="@+id/button_overlay_next"
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:paddingBottom="10dp" />
</LinearLayout>
</RelativeLayout>

次に、ボタンを初期化する必要があります(この部分は知っていると思います)

次に、アニメーションのメソッドを定義します。

//Buttons Fadein / Fadeout-------------------------------------------------------------------------------

private void buttonFadeOut() {
        linear_layout_buttons.startAnimation(AnimationUtils.loadAnimation(MyMapActivity.this, android.R.anim.slide_out_right));
        linear_layout_buttons.setVisibility(View.GONE);
}


private void buttonFadeIn() {
    if(linear_layout_buttons.getVisibility() == View.GONE){
        linear_layout_buttons.startAnimation(AnimationUtils.loadAnimation(MyMapActivity.this, android.R.anim.slide_out_left));
        linear_layout_buttons.setVisibility(View.VISIBLE);
}

最後に、必要な場所で buttonFadeIn() と ButtonFadeOut() を呼び出すだけです。

幸運を。

于 2012-10-03T17:19:02.713 に答える