make following menu_example.xml file
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/lylMenu" android:layout_width="fill_parent" android:layout_height="match_parent" android:gravity="bottom" android:orientation="vertical" android:visibility="invisible" > <TextView android:layout_width="fill_parent" android:layout_height="1dp" android:background="#ffffff" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="#ffffff" android:gravity="bottom|center" android:orientation="horizontal" > <Button android:id="@+id/mnubtnExit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1.3" android:background="@drawable/button_selector" android:drawableTop="@drawable/icon_exit" android:text="Exit" android:textColor="#FFFFFF" android:textSize="15sp" android:textStyle="bold" /> <Button android:id="@+id/mnubtnRefresh" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="1dp" android:layout_marginRight="1dp" android:layout_weight="1" android:background="@drawable/button_selector" android:drawableTop="@drawable/icon_refresh" android:text="Refresh" android:textColor="#FFFFFF" android:textSize="15sp" android:textStyle="bold" /> <Button android:id="@+id/mnubtnExport" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="1" android:background="@drawable/button_selector" android:drawableTop="@drawable/icon_export" android:text="Export" android:textColor="#FFFFFF" android:textSize="15sp" android:textStyle="bold" /> <Button android:id="@+id/mnubtnDelete" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="0.9" android:background="@drawable/button_selector" android:drawableTop="@drawable/icon_delete" android:text="Delete All" android:textColor="#FFFFFF" android:textSize="15sp" android:textStyle="bold" /> <Button android:id="@+id/mnubtnSettings" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="1dp" android:layout_weight="0.9" android:background="@drawable/button_selector" android:drawableTop="@drawable/icon_settings" android:text="Settings" android:textColor="#FFFFFF" android:textSize="15sp" android:textStyle="bold" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="1dp" android:background="#ffffff" /> </LinearLayout>
Apply menu at the bottom of your desired layout file as per following :
You have to give bottom margin as per your menu height.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/effect_message_background" android:orientation="vertical" > <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" > </ScrollView> <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="-60dip" android:gravity="bottom" > <include layout="@layout/menu_example" /> </RelativeLayout> </LinearLayout>
apply following code to slide up and down.
LinearLayout lyl_Menu = = (LinearLayout)findViewById(R.id.lylMenu); @Override public boolean onKeyDown(int keyCode, KeyEvent event) { try { if(keyCode == KeyEvent.KEYCODE_MENU) { //System.out.println("MENU PRESSED..........."); if(lyl_Menu.isShown()) { goneFooter(); } else { visibleFooter(); } } else if(keyCode == KeyEvent.KEYCODE_BACK) { if(lyl_Menu.isShown()) { goneFooter(); return true; } } } catch (Exception e) { e.printStackTrace(); } return super.onKeyDown(keyCode, event); } public void visibleFooter() { if(!lyl_Menu.isShown()) { lyl_Menu.setVisibility(View.VISIBLE); lyl_Menu.startAnimation(AnimationUtils.loadAnimation(UserData.this, R.anim.slide_up_in)); } } public void goneFooter() { if(lyl_Menu.isShown()) { lyl_Menu.startAnimation(AnimationUtils.loadAnimation(UserData.this, R.anim.slide_up_out)); lyl_Menu.setVisibility(View.INVISIBLE); } }
Make anim folder in res folder e.g. res/anim put following to animation xml files in anim folder :
1) slide_up_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="300" android:fromYDelta="100%p" android:toYDelta="0%p" /> </set>
2) slide_up_out.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="300" android:fromYDelta="0%p" android:toYDelta="100%p" /> </set>
转帖:http://stackoverflow.com/questions/8633157/how-to-get-menu-whose-5-menuitems-are-on-the-single-line