1、SlidingDrawer是一种抽屉型组件,抽屉打开可以得到“程序集”,可以解决界面空间紧张的问题
该组件有两个结构组成 handle 把手 和 content 内容集合
有3个方法可供使用 OnDrawerOpenListener、OnDrawerScrollListener、OnDrawerCloseListener
分别是打开抽屉、滑动抽屉、关闭抽屉
主要的程序 MyDemo.java
public class MyDemo extends Activity {
private ListView listView = null;
private SlidingDrawer mySlidingDrawer = null;
private ImageView imageView=null;
private String data[] = new String[] { "深圳腾讯公司", "www.baidu.com",
"我们都是好孩子", "疯狂安卓应用", "大学生活真精彩哈", "听妈妈的话" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
LinearLayout layout = (LinearLayout) super.findViewById(R.id.content);
this.listView = new ListView(this);
this.listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1, this.data));
layout.addView(listView);
this.mySlidingDrawer=(SlidingDrawer) super.findViewById(R.id.mySlidingDrawer);
this.imageView=(ImageView) super.findViewById(R.id.handle);
this.mySlidingDrawer.setOnDrawerOpenListener(new OnDrawerOpenListenerImpl());
this.mySlidingDrawer.setOnDrawerScrollListener(new OnDrawerScrollListenerImpl());
this.mySlidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListenerImpl());
}
private class OnDrawerOpenListenerImpl implements OnDrawerOpenListener{
@Override
public void onDrawerOpened() {
MyDemo.this.imageView.setImageResource(R.drawable.right);
}
}
private class OnDrawerScrollListenerImpl implements OnDrawerScrollListener{
@Override
public void onScrollEnded() {
Toast.makeText(MyDemo.this, "窗口拖动结束", Toast.LENGTH_SHORT).show();
}
@Override
public void onScrollStarted() {
Toast.makeText(MyDemo.this, "窗口正在拖动", Toast.LENGTH_SHORT).show();
}
}
private class OnDrawerCloseListenerImpl implements OnDrawerCloseListener{
@Override
public void onDrawerClosed() {
MyDemo.this.imageView.setImageResource(R.drawable.left);
}
}
private ListView listView = null;
private SlidingDrawer mySlidingDrawer = null;
private ImageView imageView=null;
private String data[] = new String[] { "深圳腾讯公司", "www.baidu.com",
"我们都是好孩子", "疯狂安卓应用", "大学生活真精彩哈", "听妈妈的话" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
LinearLayout layout = (LinearLayout) super.findViewById(R.id.content);
this.listView = new ListView(this);
this.listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1, this.data));
layout.addView(listView);
this.mySlidingDrawer=(SlidingDrawer) super.findViewById(R.id.mySlidingDrawer);
this.imageView=(ImageView) super.findViewById(R.id.handle);
this.mySlidingDrawer.setOnDrawerOpenListener(new OnDrawerOpenListenerImpl());
this.mySlidingDrawer.setOnDrawerScrollListener(new OnDrawerScrollListenerImpl());
this.mySlidingDrawer.setOnDrawerCloseListener(new OnDrawerCloseListenerImpl());
}
private class OnDrawerOpenListenerImpl implements OnDrawerOpenListener{
@Override
public void onDrawerOpened() {
MyDemo.this.imageView.setImageResource(R.drawable.right);
}
}
private class OnDrawerScrollListenerImpl implements OnDrawerScrollListener{
@Override
public void onScrollEnded() {
Toast.makeText(MyDemo.this, "窗口拖动结束", Toast.LENGTH_SHORT).show();
}
@Override
public void onScrollStarted() {
Toast.makeText(MyDemo.this, "窗口正在拖动", Toast.LENGTH_SHORT).show();
}
}
private class OnDrawerCloseListenerImpl implements OnDrawerCloseListener{
@Override
public void onDrawerClosed() {
MyDemo.this.imageView.setImageResource(R.drawable.left);
}
}
布局文件main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MyDemo" >
<SlidingDrawer
android:id="@+id/mySlidingDrawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:handle="@+id/handle"
android:content="@+id/content">
<ImageView
android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/left"/>
<LinearLayout
android:id="@+id/content"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</LinearLayout>
</SlidingDrawer>
</LinearLayout>
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MyDemo" >
<SlidingDrawer
android:id="@+id/mySlidingDrawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:handle="@+id/handle"
android:content="@+id/content">
<ImageView
android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/left"/>
<LinearLayout
android:id="@+id/content"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</LinearLayout>
</SlidingDrawer>
</LinearLayout>