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