滑动式抽屉布局界面SlidingDrawer的简单使用
2011-12-09 15:33
393 查看
今天学习SlidingDrawer控件,完成了一个简单的Demo,跟大家分享一下:
1 首先在layout下面新建两个布局文件,当前Activity中用到的主布局文件main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <SlidingDrawer android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/slidingDrawer" android:handle="@+id/layout1" android:content="@+id/gridView" android:orientation="horizontal"> <LinearLayout android:id="@+id/layout1" android:layout_width="30px" android:layout_height="wrap_content" android:background="@drawable/main" android:gravity="center"> <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/save"> </ImageView> </LinearLayout> <GridView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/gridView" android:numColumns="3" android:background="@drawable/main" android:gravity="center"/> </SlidingDrawer> </RelativeLayout>适配器中用到的布局文件grid.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:id="@+id/icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center"/> <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="20sp" android:gravity="center" android:textColor="#FFFFFF"/> </LinearLayout>
2 当前的Activity的SlidingDrawerTestActivity.java代码如下public class SlidingDrawerTestActivity extends Activity { private GridView gridView; private SlidingDrawer slidingDrawer; private ImageView imageView; private int[] icons={R.drawable.alarm,R.drawable.calendar,R.drawable.clock,R.drawable.music,R.drawable.tv}; private String[] items={"alarm","calendar","clock","music","tv"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); gridView=(GridView)findViewById(R.id.gridView); slidingDrawer=(SlidingDrawer)findViewById(R.id.slidingDrawer); imageView=(ImageView)findViewById(R.id.imageView); GridViewAdapter gridViewAdapter=new GridViewAdapter(this,items,icons); gridView.setAdapter(gridViewAdapter); slidingDrawer.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener() { @Override public void onDrawerOpened() { imageView.setImageResource(R.drawable.open); } }); slidingDrawer.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() { @Override public void onDrawerClosed() { imageView.setImageResource(R.drawable.close); } }); slidingDrawer.setOnDrawerScrollListener(new SlidingDrawer.OnDrawerScrollListener() { @Override public void onScrollStarted() { Log.d("打印测试","onScrollStarted()方法执行"); } @Override public void onScrollEnded() { Log.d("打印测试","onScrollEnded()方法执行"); } }); gridView.setOnItemClickListener(new GridView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { switch (icons[arg2]) //只能用icons[arg2],不能用items[args](在java7中才能用)
{ case R.drawable.alarm: Toast.makeText(getApplicationContext(),"你点击的是"+items[arg2],Toast.LENGTH_SHORT).show(); break; case R.drawable.calendar: Toast.makeText(getApplicationContext(),"你点击的是"+items[arg2],Toast.LENGTH_SHORT).show(); break; case R.drawable.clock: Toast.makeText(getApplicationContext(),"你点击的是"+items[arg2],Toast.LENGTH_SHORT).show(); break; case R.drawable.music: Toast.makeText(getApplicationContext(),"你点击的是"+items[arg2],Toast.LENGTH_SHORT).show(); break; case R.drawable.tv: Toast.makeText(getApplicationContext(),"你点击的是"+items[arg2],Toast.LENGTH_SHORT).show(); break; default: break; } } }); } }适配器文件GridViewAdapter.java代码如下
public class GridViewAdapter extends BaseAdapter { private Context context; private String []items; private int[] icons; public GridViewAdapter(Context context,String[] items, int[] icons) { this.context=context; this.items=items; this.icons=icons; } @Override public int getCount() { return items.length; } @Override public Object getItem(int position) { return items[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater factory=LayoutInflater.from(context); View view=(View)factory.inflate(R.layout.grid,null); ImageView imageView=(ImageView)view.findViewById(R.id.icon); TextView textView=(TextView)view.findViewById(R.id.text); imageView.setImageResource(icons[position]); textView.setText(items[position]); return view; } }滑动式抽屉运行后截图如下
相关文章推荐
- ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- 使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- 使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- ios开发UI基础—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- Xcode中使用自动布局实现简单登录界面
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- 使用Devexpress开发简单进销存系统(2)--界面布局
- ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- ios开发UI篇—使用纯代码自定义UItableviewcell实现一个简单的微博界面布局
- ioS开发之UI基础--使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- 使用线性布局实现简单登陆界面的实例
- android_滑动式抽屉(SlidingDrawer)的使用
- iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局
- iOS 使用纯代码自定义UITableViewCell实现一个简单的微博界面布局