加入收藏 | 设为首页 | 会员中心 | 我要投稿 三明站长网 (https://www.0598zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Android抽屉达成

发布时间:2021-11-24 13:56:37 所属栏目:教程 来源:互联网
导读:在手机上实现了抽屉效果,其实很简单,但是效果却很酷。 首先在layout 下设置xml布局文件 [html] ?xml version=1.0 encoding=utf-8? RelativeLayout xmlns:Android=http://schemas.android.com/apk/res/android android:layout_width=fill_parent android:lay
在手机上实现了抽屉效果,其实很简单,但是效果却很酷。
首先在layout 下设置xml布局文件        
 
[html]
<?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>  
        SlidingDrawer就是重要的抽屉控件 ,handle是抽屉的拖动按钮,content是抽屉中的内容。
      然后建立 chouti的activity类:
 
[html]
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;  
        }  
  
    }  
}  
loadApps方法是得到主界面上的图片和文字。
   然后设置的自定义adapter中去。

(编辑:三明站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!