MainActivity.java

package com.xzqsdta;import java.util.List;import android.app.Activity;import android.content.ComponentName;import android.content.Intent;import android.content.pm.ResolveInfo;import android.os.Bundle;import android.view.View;import android.view.Window;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.GridView;import android.widget.ImageView;import android.widget.SlidingDrawer;import android.widget.SlidingDrawer.OnDrawerCloseListener;import android.widget.SlidingDrawer.OnDrawerOpenListener;public class MainActivity extends Activity {    private GridView gv;    private SlidingDrawer sd;    private ImageView iv;    private List<ResolveInfo> apps;    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.main);        findViewById();        loadApps();        processBiz();        addListener();    }    /**     * 初始化控件     */    private void findViewById() {        gv = (GridView) findViewById(R.id.allApps);        sd = (SlidingDrawer) findViewById(R.id.sliding);        iv = (ImageView) findViewById(R.id.imageViewIcon);    }    /**     * 查詢系統的app信息     */    private void loadApps() {        Intent intent = new Intent(Intent.ACTION_MAIN, null);        intent.addCategory(Intent.CATEGORY_LAUNCHER);        apps = getPackageManager().queryIntentActivities(intent, 0);    }    /**     * 主业务逻辑处理     */    private void processBiz() {        GridAdapter adapter = new GridAdapter(this, apps);        gv.setAdapter(adapter);    }    /**     * 添加监听事件     */    private void addListener() {        sd.setOnDrawerOpenListener(new OnDrawerOpenListener() {            public void onDrawerOpened() {                iv.setImageResource(R.drawable.ic_launcher1);            }        });        sd.setOnDrawerCloseListener(new OnDrawerCloseListener() {            public void onDrawerClosed() {                iv.setImageResource(R.drawable.ic_launcher);            }        });        gv.setOnItemClickListener(new OnItemClickListener() {            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                ResolveInfo res = apps.get(position);                String pkg = res.activityInfo.packageName;                String cls = res.activityInfo.name;                ComponentName componet = new ComponentName(pkg, cls);                Intent i = new Intent();                i.setComponent(componet);                startActivity(i);            }        });    }}

GridAdapter.java

package com.xzqsdta;import java.util.List;import android.content.Context;import android.content.pm.ResolveInfo;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.GridView;import android.widget.ImageView;public class GridAdapter extends BaseAdapter {    private Context context;    private List<ResolveInfo> apps;    public GridAdapter(Context context, List<ResolveInfo> apps) {        this.context = context;        this.apps = apps;    }    @Override    public int getCount() {        return apps.size();    }    @Override    public Object getItem(int position) {        return apps.get(position);    }    @Override    public long getItemId(int position) {        return position;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        ImageView imageView = null;        if (convertView == null) {            imageView = new ImageView(context);            imageView.setScaleType(ImageView.ScaleType.FIT_XY);            imageView.setLayoutParams(new GridView.LayoutParams(80, 80));        } else {            imageView = (ImageView) convertView;        }        ResolveInfo ri = apps.get(position);        imageView.setImageDrawable(ri.activityInfo.loadIcon(context.getPackageManager()));        return imageView;    }}

main.xml

<?xml version="1.0" encoding="utf-8"?><SlidingDrawer xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/sliding"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#ffffff"    android:content="@+id/allApps"    android:handle="@+id/imageViewIcon"    android:orientation="vertical" >    <GridView        android:id="@+id/allApps"        android:layout_width="fill_parent"        android:layout_height="fill_parent"        android:columnWidth="90dp"        android:fastScrollEnabled="true"        android:gravity="center"        android:horizontalSpacing="10dp"        android:numColumns="auto_fit"        android:stretchMode="columnWidth"        android:verticalSpacing="10dp" />    <ImageView        android:id="@+id/imageViewIcon"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:background="#d0d7df"        android:contentDescription="@string/app_name"        android:src="@drawable/ic_launcher" /></SlidingDrawer>



更多相关文章

  1. bmob初始化报错
  2. Android(安卓)在Xml控件中对应的颜色透明度
  3. Android调用摄像头
  4. ConstraintLayout约束布局属性
  5. 关于setOnCheckedChangeListener的使用
  6. Android(安卓)--------- 自定义VIew
  7. Android——基于ConstraintLayout实现的可拖拽位置控件
  8. OpenCV4.4在安卓中的配置
  9. Android使用Gallery实现照片拖动的特效

随机推荐

  1. Android(安卓)Audio代码分析22 - AudioEf
  2. 【Android】ViewGroup全面分析
  3. android 拍摄视频
  4. Android(安卓)添加多张图片。
  5. android 语音识别
  6. Android(安卓)自定义窗口标题
  7. Android(安卓)P WiFi 连接以及获取 IP 流
  8. Android(安卓)中日期对话框的应用
  9. 【高通SDM660平台 Android(安卓)10.0】(1
  10. android如何让webview里的资源访问本地缓