SlidingDrawer(隐藏式抽屉),它配置上采用了水平展开和垂直展开两种(android:orientation)方式,在XML里必须指定其使用的android:handle和android:content,前者委托要展开的图片(点击的那个控件来打开抽屉),后者则是要展开的Layout Content(打开抽屉后的内容)。还是很简单的。
配置文件:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextView      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/hello"    /><SlidingDrawer    android:id="@+id/drawer1"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:handle="@+id/myImage1"    android:content="@+id/myContent1"    android:orientation="horizontal"    >    <LinearLayout    android:id="@+id/layout1"    android:layout_width="35px"    android:layout_height="fill_parent"    android:gravity="center">    <ImageView    android:id="@id/myImage1"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:src="@drawable/left"/>    </LinearLayout>    <GridView        android:id="@id/myContent1"        android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:numColumns="2"    android:gravity="center"    android:background="@color/black"/></SlidingDrawer></RelativeLayout>

package com.kevin.slidingdrawer;import android.app.Activity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;import android.widget.SlidingDrawer;import android.widget.SlidingDrawer.OnDrawerCloseListener;import android.widget.SlidingDrawer.OnDrawerOpenListener;import android.widget.TextView;public class Main extends Activity {private GridView gv;private SlidingDrawer sd;private ImageView im;private int[] icons = {R.drawable.android_normal,R.drawable.android_waving,R.drawable.left,R.drawable.right};    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        gv = (GridView) findViewById(R.id.myContent1);        sd = (SlidingDrawer) findViewById(R.id.drawer1);        im = (ImageView) findViewById(R.id.myImage1);        gv.setAdapter(new GridViewAdapter());        // 设置SlidingDrawer被打开的事件处理        sd.setOnDrawerOpenListener(new OnDrawerOpenListener() {@Overridepublic void onDrawerOpened() {im.setImageResource(R.drawable.right);}});        // 设置SlidingDrawer被关闭的事件处理        sd.setOnDrawerCloseListener(new OnDrawerCloseListener() {@Overridepublic void onDrawerClosed() {im.setImageResource(R.drawable.left);}});    }    // 因为我这边Adapter的数据不仅仅是TextView,所以我自己定义了一个Adapter    class GridViewAdapter extends BaseAdapter{@Overridepublic int getCount() {return icons.length;}@Overridepublic Object getItem(int position) {return position;}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {LayoutInflater flater = Main.this.getLayoutInflater();View view = flater.inflate(R.layout.grid, null);ImageView iv = (ImageView) view.findViewById(R.id.imageView1);TextView tv = (TextView) view.findViewById(R.id.textView1);iv.setImageResource(icons[position]);tv.setText(String.valueOf(position));return view;}        }}

更多相关文章

  1. AVD(android virtual device )路径设置
  2. 打开android默认浏览器
  3. Android(安卓)studio不能在布局预览的问题
  4. Android(安卓)-- 隐藏式抽屉(SlidingDrawer)
  5. Android(安卓)RecyclerView 滑动删除例子
  6. android手电源码
  7. Android抽屉效果(使用LayoutParams来移动View的位置)
  8. 在/external/tinyalsa/pcm.c 添加android log
  9. android 打开微信扫一扫

随机推荐

  1. 自定义ListView下方分割线
  2. Android文件操作
  3. android中自定义ProgressBar水平样式
  4. Android(安卓)Handler简单例子
  5. 分享方法:android 获得屏幕状态
  6. Android(安卓)5.0 parseSdkContent faile
  7. Android(安卓)中常用代码片段
  8. android dumpsys
  9. Android学习笔记001_布局01
  10. android dumpsys