0

画面の下部に画像があります。画像をクリックすると、垂直メニューが開きます。Android API 7を使用しています。画面は下の画像のようになります

ここに画像の説明を入力

メニュー作成者-

    public boolean onCreateOptionsMenu(Menu menu) {
     MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.layout.menu, menu);
        return true;
}

メニュー

  <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
 >
<item android:id="@+id/en"
          android:title="English"
            />
<item android:id="@+id/pt"
           android:title="Portugess" />
 <item android:id="@+id/es"
        android:title="Spainsh" />
 </menu>

メニューは横に表示されますが、助けてください!

4

2 に答える 2

1

メニューでの使い方がわかりません。しかし、 Layout を使用して同じ効果を実現しました。私はこれがあなたを助けるかもしれないコードを入れました。

必要に応じてレイアウトを変更する必要があります。

activity_main.xml

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:gravity="center_vertical|center_horizontal"
    android:orientation="horizontal" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Buy" />

    <Button
        android:id="@+id/btn_ex"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Example" />
</LinearLayout>

<LinearLayout
    android:id="@+id/layout_ex"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/linearLayout1"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="18dp"
    android:layout_marginRight="104dp"
    android:gravity="bottom"
    android:orientation="vertical"
    android:visibility="invisible"
     >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Example1" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Example2" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Example3" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Example4" />
</LinearLayout>

top.xml

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2500"
    android:fromXDelta="0%"
    android:fromYDelta="200%"
    android:toXDelta="0%"
    android:toYDelta="0%"
    android:zAdjustment="normal" />

MainActivity.java

public class MainActivity extends Activity implements AnimationListener {

    private Button btn_ex;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn_ex = (Button) findViewById(R.id.btn_ex);

        btn_ex.setOnClickListener(new OnClickListener() {

            private LinearLayout layout_ex;

            public void onClick(View v) {

                Animation movement5;
                layout_ex = (LinearLayout) findViewById(R.id.layout_ex);

                layout_ex.setVisibility(View.VISIBLE);

                // layout3.setVisibility(true); //USE THIS LINE //EDITED

                movement5 = AnimationUtils.loadAnimation(MainActivity.this,
                        R.layout.top);
                movement5.reset();
                movement5.setFillAfter(true);
                movement5.setAnimationListener(MainActivity.this);
                layout_ex.startAnimation(movement5);

            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    public void onAnimationEnd(Animation arg0) {
        // TODO Auto-generated method stub

    }

    public void onAnimationRepeat(Animation arg0) {
        // TODO Auto-generated method stub

    }

    public void onAnimationStart(Animation arg0) {
        // TODO Auto-generated method stub

    }
}
于 2012-11-09T06:16:11.550 に答える
0

このような 1 つのことを行うことができます。

  1. メイン レイアウトで必要に応じて 1 つのレイアウト (メニュー レイアウトとしましょう) を作成します。

例えば:

<RelativeLayout ....>
   <LinearLayout ....> // Your main layout start here

    // your main layout

   </LinearLayout> // Your main layout end here

   <LinearLayout ....>

    // Your menu layout

   </LinearLayout>

</RelativeLayout>
  1. メニュー レイアウト LinearLayout の ID を定義します。
  2. 最初はそのメニュー レイアウトの属性としてandroid:visibility="gone"、メイン レイアウトでは表示されません。
  3. 画像をクリックしている間、必要に応じて垂直方向のアニメーションでそのメニューを表示します。

このアイデアがお役に立てば幸いです。私は以前にそれを行ったので、それは可能であり、あなたはこの方法であなたの目標を達成することができます.

助けが必要な場合はコメントしてください。

コーディングをお楽しみください。:)

于 2012-11-19T04:03:14.533 に答える