首先在layout 下设置xml布局文件
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:Android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" >
- <SlidingDrawer
- android:id="@+id/sliding"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:content="@+id/allApps"
- android:handle="@+id/imageViewIcon"
- android:orientation="vertical" >
- <GridView
- android:id="@+id/allApps"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@drawable/bk"
- android:columnWidth="60dp"
- android:gravity="center"
- android:horizontalSpacing="10dp"
- android:numColumns="auto_fit"
- android:padding="10dp"
- android:stretchMode="columnWidth"
- android:verticalSpacing="10dp" />
- <ImageView
- android:id="@+id/imageViewIcon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:src="@drawable/touch_handler" />
- </SlidingDrawer>
- </RelativeLayout>
然后建立 chouti的activity类:
- import android.app.Activity;
- import android.content.Intent;
- import android.content.pm.ResolveInfo;
- import android.os.Bundle;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.GridView;
- import android.widget.ImageView;
- import android.widget.SlidingDrawer;
- public class Chouti extends Activity {
- private GridView gv;
- private SlidingDrawer sd;
- private ImageView iv;
- private List<ResolveInfo> apps;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.slidingdrawer);
- loadApps();
- gv = (GridView) findViewById(R.id.allApps);
- sd = (SlidingDrawer) findViewById(R.id.sliding);
- iv = (ImageView) findViewById(R.id.imageViewIcon);
- gv.setAdapter(new GridAdapter());
- sd.setOnDrawerOpenListener(new SlidingDrawer.OnDrawerOpenListener()// 开抽屉
- {
- @Override
- public void onDrawerOpened() {
- iv.setImageResource(R.drawable.touch_handler);// 响应开抽屉事件
- // ,把图片设为向下的
- }
- });
- sd.setOnDrawerCloseListener(new SlidingDrawer.OnDrawerCloseListener() {
- @Override
- public void onDrawerClosed() {
- iv.setImageResource(R.drawable.touch_handler);// 响应关抽屉事件
- }
- });
- }
- private void loadApps() {
- Intent intent = new Intent(Intent.ACTION_MAIN, null);
- intent.addCategory(Intent.CATEGORY_LAUNCHER);
- apps = getPackageManager().queryIntentActivities(intent, 0);
- }
- public class GridAdapter extends BaseAdapter {
- public GridAdapter() {
- }
- public int getCount() {
- // TODO Auto-generated method stub
- return apps.size();
- }
- public Object getItem(int position) {
- // TODO Auto-generated method stub
- return apps.get(position);
- }
- public long getItemId(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- public View getView(int position, View convertView, ViewGroup parent) {
- // TODO Auto-generated method stub
- ImageView imageView = null;
- if (convertView == null) {
- imageView = new ImageView(Chouti.this);
- imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
- imageView.setLayoutParams(new GridView.LayoutParams(50, 50));
- } else {
- imageView = (ImageView) convertView;
- }
- ResolveInfo ri = apps.get(position);
- imageView.setImageDrawable(ri.activityInfo
- .loadIcon(getPackageManager()));
- return imageView;
- }
- }
- }
然后设置的自定义adapter中去。
看下运行后效果:
向上滑动imageview按钮后: