Android抽屉菜单SlidingDrawer 简单使用
<?xml version="1.0" encoding="utf-8"?> 
 <!-- 需要设置SlidingDrawer的handle和content的id --> 
 <SlidingDrawer xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/slidingdrawer" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:content="@+id/content" 
     android:handle="@+id/handle" 
     android:orientation="horizontal" > 
  
     <!-- 设置handle,来处理滑动抽屉 --> 
  
     <ImageButton 
         android:id="@id/handle" 
         android:layout_width="50dp" 
         android:layout_height="50dp" 
         android:src="@drawable/ic_launcher" /> 
     <!-- 设置内容View --> 
  
     <RelativeLayout 
         android:id="@id/content" 
         android:layout_width="match_parent" 
         android:layout_height="match_parent" 
         android:background="#F0F0F0" > 
  
         <TextView 
             android:id="@+id/show_tv" 
             android:layout_width="wrap_content" 
             android:layout_height="wrap_content" 
             android:gravity="center_vertical|center_horizontal" 
             android:text="简单抽屉效果" 
             android:textColor="#333333" 
             android:textSize="18sp" /> 
  
         <ListView 
             android:id="@+id/lv" 
             android:layout_width="wrap_content" 
             android:layout_height="wrap_content" 
             android:layout_below="@id/show_tv" > 
         </ListView> 
     </RelativeLayout> 
   
</SlidingDrawer>
--------------Activity代码 -----------
 public class MainActivity extends Activity {
 private SlidingDrawer mSlidDrawer;
 private ImageButton mImageBtn;
 private TextView mShowTv;
 private List<String> dataList;
 private ListView mLv;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 // TODO Auto-generated method stub
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 initViews();
 initDatas();
 initDrawerListeners();
 }
 
 @SuppressWarnings("deprecation")
 private void initDrawerListeners() {
 mSlidDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener() {
 public void onDrawerOpened() {
 mImageBtn.setImageResource(R.drawable.a1);
 }
 });
 
 mSlidDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() {
 
 
 public void onDrawerClosed() {
 mImageBtn.setImageResource(R.drawable.ic_launcher);
 }
 });
 
 
 mSlidDrawer.setOnDrawerScrollListener(new SlidingDrawer.OnDrawerScrollListener() {
 public void onScrollEnded() {
 mShowTv.setText("滑动打开");
 mLv.setAdapter(new DrawerAdpater(getApplicationContext(), dataList));
 }
 
 public void onScrollStarted() {
 mShowTv.setText("滑动隐藏");
 }
 }); 
                mLv.setOnItemClickListener(new OnItemClickListener() {
 @Override
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 mShowTv.setText(dataList.get(position));
 }
 });
 }
 
 private void initDatas() {
 dataList = new ArrayList<String>();
 for (int i = 0; i <= 6; i++) {
 dataList.add("抽屉菜单第" + i + "层");
 }
 }
 
 private void initViews() {
 mImageBtn = (ImageButton) findViewById(R.id.handle);
 mSlidDrawer = (SlidingDrawer) findViewById(R.id.slidingdrawer);
 mShowTv = (TextView) findViewById(R.id.show_tv);
 mLv = (ListView) findViewById(R.id.lv);
 }
 }
  
--------------Activity中ListView的适配器DrawerAdpater ---------
public class DrawerAdpater extends BaseAdapter {List<String> list;
LayoutInflater inflater;
public MyAdpater(Context context, List<String> list) {
this.list = list;
this.inflater = LayoutInflater.from(context);
}
public int getCount() {
return list.size();
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.item, null);
}
TextView textView = (TextView) convertView.findViewById(R.id.text);
textView.setText(list.get(position));
return convertView;
}
@Override
public Object getItem(int position) {
return list.get(position);
}
}