【问题标题】:How to create facebook style bottom fly in menu如何在菜单中创建 facebook 样式底部飞
【发布时间】:2014-08-07 03:47:10
【问题描述】:

我喜欢将操作栏/菜单创建为 Facebook android 应用程序。 我说的是底部 pf 应用程序中出现的(状态 | 照片 | 签入)菜单。

1.我怎样才能创建这样的菜单?

2.如何在该菜单上创建飞入效果?

那是动作栏吗?还是底部的相对布局?

谢谢。

【问题讨论】:

    标签: android android-layout android-actionbar navigation-drawer android-menu


    【解决方案1】:

    这是一个浮动布局的代码。你可以自定义它来构建一个菜单。

    public class MainActivity extends Activity {
    LinearLayout ll;
    Float startY;
    private Animation animUp;
    private Animation animDown; 
    Button btn_show;
    int f=1;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
             ll = (LinearLayout) findViewById(R.id.slider); 
             btn_show=(Button)findViewById(R.id.btn_show);
             ll.setVisibility(View.GONE); 
             animUp = AnimationUtils.loadAnimation(this, R.anim.anim_up); 
             animDown = AnimationUtils.loadAnimation(this, R.anim.anim_down); 
    
             btn_show.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    if(f==1)
                    {
                     ll.setVisibility(View.VISIBLE);
                     ll.startAnimation(animUp);
                     f=0;
                    }
                    else{
                        ll.setVisibility(View.GONE); 
                         ll.startAnimation(animDown);
                         f=1;
                    }
                }
            });
    
    
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent event) 
        { 
            switch (event.getAction()) 
            { 
            case MotionEvent.ACTION_DOWN : 
            { 
                startY = event.getY(); 
                break ;
                } 
            case MotionEvent.ACTION_UP: 
                { 
                    float endY = event.getY();
                    if (endY < startY)
                    {
                        System.out.println("Move UP"); 
                        ll.setVisibility(View.VISIBLE);
                        ll.startAnimation(animUp); 
                        } 
                    else {
                        ll.setVisibility(View.GONE); 
                         ll.startAnimation(animDown);
                        } 
                    } 
                } return true; 
        }
    
    
    }
    

    activity_main.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:tools="http://schemas.android.com/tools" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:background="@android:color/black">
    
        <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Show"
            android:id="@+id/btn_show"
           />
    
         <LinearLayout android:id="@+id/slider" 
           android:layout_width="match_parent" 
           android:layout_height="50dp" 
           android:layout_alignParentBottom="true" 
           android:layout_alignParentLeft="false"
           android:layout_alignParentTop="false" 
           android:layout_centerInParent="true"
           android:background="@android:color/darker_gray" 
           android:content="@+id/content"
           android:gravity="bottom|center_horizontal"
           android:orientation="vertical" > 
    
    
             <TextView android:id="@id/content" 
                       android:layout_width="match_parent"
                       android:layout_height="wrap_content" 
                       android:text="Floating Tab Kaustav"/>
                </LinearLayout>
       </RelativeLayout>
    

    在res中创建一个anim文件夹,制作2个xml文件:

    anim_down.xml

    <?xml version="1.0" encoding="utf-8"?>
     <set xmlns:android="http://schemas.android.com/apk/res/android">
          <translate android:fromYDelta="0%" 
              android:toYDelta="100%" 
              android:duration="400"/>
           </set> 
    

    anim_up.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"> 
        <translate android:fromYDelta="100%" 
            android:toYDelta="40%"
             android:duration="400"/> 
             </set> 
    

    试试吧。希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 2013-03-18
      相关资源
      最近更新 更多