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>

顶部.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. 根据您的需要在主布局中创建一种布局(比如说菜单布局)。

例如:

<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 回答