Slide menu component support android version 2.2 and above. we should using android support jar v4
Source code link
Activity-1
public class MainActivity extends Activity {
private ScrollerLinearLayout sideSlideLayout;
private ListView listView;
private final String[] menuTitles = { “Biraynis”, “Sample”, “Contorll” };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
setMenuButton();
setListView();
setContent(0);
}
private void init() {
this.sideSlideLayout = (ScrollerLinearLayout) findViewById(R.id.menu_content_side_slide_layout);
}
private void setMenuButton() {
ImageView menuButton = (ImageView) findViewById(R.id.main_tmp_button);
menuButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
sideSlideLayout.scroll();
listView.setVisibility(View.VISIBLE);
}
});
}
private void setListView() {
ArrayList<String> items = new ArrayList<String>();
for (int i = 0; i < menuTitles.length; i++) {
items.add(menuTitles[i]);
}
listView = (ListView) findViewById(R.id.menu_content_menulist);
listView.setFadingEdgeLength(0);
MenuAdapter menuAdapter = new MenuAdapter(this, items, this);
listView.setAdapter(menuAdapter);
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
setContent(arg2);
sideSlideLayout.scroll();
}
});
}
private void setContent(int position) {
}
}
Slide Menu Classes
MenuAdapter.java
public class MenuAdapter extends BaseAdapter {
private Context context;
private ArrayList<String> items;
private LayoutInflater inflater;
public MenuAdapter(Context context, ArrayList<String> items, Activity act) {
this.context = context;
this.items = items;
this.inflater = LayoutInflater.from(context);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = inflater.inflate(R.layout.item_menu, null);
TextView title = (TextView) convertView.findViewById(R.id.menu_title);
title.setText(getItem(position));
return convertView;
}
@Override
public int getCount() {
return items.size();
}
@Override
public String getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
}
ScrollerLinearLayout.java
public class ScrollerLinearLayout extends LinearLayout {
private Context context;
private Scroller scroller;
private float density;
private int scrollSizeWidth;
public ScrollerLinearLayout(Context context) {
super(context);
this.context = context;
init();
}
public ScrollerLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
init();
}
private void init() {
scroller = new Scroller(context);
WindowManager wm = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
Display disp = wm.getDefaultDisplay();
int screenWidth = disp.getWidth();
DisplayMetrics metrics = new DisplayMetrics();
((Activity) context).getWindowManager().getDefaultDisplay()
.getMetrics(metrics);
this.density = metrics.density;
scrollSizeWidth = (int) (screenWidth – (108 * density));
}
public void scroll() {
animationStart();
}
@Override
public void computeScroll() {
if (scroller.computeScrollOffset()) {
scrollTo(scroller.getCurrX(), scroller.getCurrY());
postInvalidate();
}
}
private void animationStart() {
if (scroller.getCurrX() < 0)
scroller.startScroll(scroller.getCurrX(), scroller.getCurrY(), -1
* scroller.getCurrX(), 0, 500);
else
scroller.startScroll(scroller.getCurrX(), scroller.getCurrY(),
-scrollSizeWidth, 0, 500);
invalidate();
}
}
Activity–layout
<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:background=”@drawable/actionbar_background”
android:layout_height=”match_parent” >
<EditText
android:id=”@+id/hi”
android:layout_width=”120dp”
android:layout_height=”wrap_content”
android:layout_alignParentTop=”true”
android:background=”@drawable/edit” />
<ListView
android:id=”@+id/menu_content_menulist”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:layout_below=”@+id/hi” >
</ListView>
<RelativeLayout
android:layout_width=”fill_parent”
android:layout_height=”fill_parent” >
<side.menu.scroll.ScrollerLinearLayout
android:id=”@+id/menu_content_side_slide_layout”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:orientation=”vertical” >
<LinearLayout
android:layout_width=”fill_parent”
android:layout_height=”45dp”
android:background=”@drawable/ab_solid_example”
android:orientation=”horizontal” >
<ImageView
android:id=”@+id/main_tmp_button”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:background=”@drawable/actionbar_background”
android:src=”@drawable/download” />
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_weight=”1″ />
<ImageView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:src=”@drawable/sr” />
</LinearLayout>
<LinearLayout
android:id=”@+id/menu_content_root”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:background=”@drawable/bg_groud” />
</side.menu.scroll.ScrollerLinearLayout>
</RelativeLayout>
</RelativeLayout>