参考博客:

https://www.cnblogs.com/rayray/p/3408107.html 

参考android的源码的地址:

http://androidxref.com/source/xref/packages/apps/Launcher2/src/com/android/launcher2/DragLayer.java

 

package bjpkten.mylauncher;import android.content.Intent;import android.content.pm.ResolveInfo;import android.os.Bundle;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.GridLayoutManager;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import java.util.List;public class MainActivity extends AppCompatActivity {    private RecyclerView mRecyclerView;    private List mApps;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mRecyclerView = (RecyclerView) findViewById(R.id.recyclerview);        initData();        mRecyclerView.setAdapter(new MyRecyclerViewAdapter());        mRecyclerView.setLayoutManager(new GridLayoutManager(this,3));    }    public void initData(){        Intent intent = new Intent(Intent.ACTION_VIEW,null);        intent.addCategory(Intent.CATEGORY_DEFAULT);        mApps = getPackageManager().queryIntentActivities(intent, 0);    }    class MyViewHolder extends RecyclerView.ViewHolder{        ImageView imageView;        public MyViewHolder(View itemView) {            super(itemView);            imageView = (ImageView) itemView.findViewById(R.id.imageView);        }    }    class MyRecyclerViewAdapter extends RecyclerView.Adapter{        @NonNull        @Override        public MyViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {            View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_icon, null);            return new MyViewHolder(view);        }        @Override        public void onBindViewHolder(@NonNull MyViewHolder myViewHolder, int i) {                myViewHolder.imageView.setImageDrawable(mApps.get(i).loadIcon(getPackageManager()));        }        @Override        public int getItemCount() {            return mApps.size();        }    }}

 

 

item_icon.xml:

<?xml version="1.0" encoding="utf-8"?>    

 

 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>        

 

更多相关文章

  1. Android 条码扫描程序源码
  2. Android 精仿QQ登录界面源码
  3. 2013.6.18 Android SDK和最新ADT下载地址
  4. android多框架实现短视频应用、3D手势旋转、banner控件、指南针
  5. android中国风笔记源码,金鱼游动动画源码等
  6. [实战示例] 带您深入探讨 Android 传感器【附源码】
  7. 在android用Google Geocoding API服务解析地址(关键词:android/GP
  8. 【源码分享下载】每日更新之Android项目源码---手机天气预报系统
  9. Android属性动画,从源码的角度分析

随机推荐

  1. 拍照或从图库选择
  2. Android(安卓)Studio3.0 Annotation proc
  3. 手机安全卫士开发系列(5)——自动更新
  4. setonClickListener()的解释
  5. Android(安卓)Lesson Two: Ambient and D
  6. Android(安卓)studio 安卓填写注册表单源
  7. Android(安卓)开启关闭软键盘
  8. android layout动态布局
  9. Log控制输出
  10. java.lang.NullPointerException: Attemp