首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在图像单击(API-7及以上)上垂直打开菜单

如何在图像单击(API-7及以上)上垂直打开菜单
EN

Stack Overflow用户
提问于 2012-11-09 05:53:05
回答 2查看 653关注 0票数 0

我在屏幕底部有一张图片,我想在点击图片时打开一个垂直菜单,我使用的是android 7。屏幕如下所示

菜单由-创建

代码语言:javascript
运行
复制
    public boolean onCreateOptionsMenu(Menu menu) {
     MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.layout.menu, menu);
        return true;
}

菜单

代码语言:javascript
运行
复制
  <?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>

菜单显示,但水平.Please帮助我!

EN

回答 2

Stack Overflow用户

发布于 2012-11-09 06:16:11

我不知道如何在菜单中使用。,但我使用布局做了同样的效果。我写的代码也许能帮到你。

您必须根据您的要求更改布局。

activity_main.xml

代码语言:javascript
运行
复制
<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

代码语言:javascript
运行
复制
<?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

代码语言:javascript
运行
复制
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

    }
}
票数 1
EN

Stack Overflow用户

发布于 2012-11-19 04:03:14

你可以做一件事,

  1. 根据您在主布局中的需要创建一个布局(比如菜单布局)。

例如:

代码语言:javascript
运行
复制
<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. 现在,当您单击图像时,根据您的需要使用垂直动画显示该菜单。

希望这个想法对你有帮助。我以前做过,所以这是可能的,你可以用这种方式实现你的目标。

如果需要帮助的话,请给我留言。

享受编码吧。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13302832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档