Launcher的简单介绍

原创 2016年08月30日 17:49:37

Launcher

什么是Launcher

    Launcher是安卓系统中的桌面启动器,安卓系统的桌面UI统称为LauncherLauncher的启动实际上就是启动一个ActivityLauncher.java)。

当我们点击手机的home键时,实际上就是启动桌面管理器,会启动LaunCher.java Activity

我们也可以将自己的应用程序中的Activity作为Launcher,只要在我们的Activity注册时,在意图过滤器中添加categoryandroid:name="android.intent.category.HOME"android:name="android.intent.category.DEFAULT"这样当我们点击home键时会弹窗让我们选择开启那个Lanuncher

   

清单文件

<application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

        <activity

            android:name=".MainActivity"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>

                <category android:name="android.intent.category.HOME"/> 

                <category android:name="android.intent.category.DEFAULT"/>

            </intent-filter>

        </activity>

</application>

 

 

 

//查询所有的应用程序并显示 ResolveInfo的使用和获取所有安装程序列表的实现

Activity:

 

publicclass ShowDevelopments extends Activity {

         private GridView show_developments;

         private List<ResolveInfo> info;

         @Override

         protected void onCreate(BundlesavedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_developments);

                   show_developments=(GridView)findViewById(R.id.show_developments);

                   info=newArrayList<ResolveInfo>();

                   getData();

                   MyAdapter adapter=newMyAdapter(info);

                   show_developments.setAdapter(adapter);

                   show_developments.setOnItemClickListener(newAdapterView.OnItemClickListener() {

 

                            @Override

                            public voidonItemClick(AdapterView<?> parent, View view,

                                               intposition, long id) {

                                     start(position);

                            }

                   });

         }

         /**

          * 界面跳转的方法:ComponentName的使用

          */

         private void start(int i){

                   ResolveInfoinfo = this.info.get(i); 

        //该应用的包名 

        String pkg =info.activityInfo.packageName; 

        //应用的主activity 

        String cls =info.activityInfo.name; 

        ComponentName componet = newComponentName(pkg, cls); 

        Intent intent = new Intent(); 

        intent.setComponent(componet); 

        startActivity(intent);

         }

         /**

          * 获取所有的安装的应用程序

          */

         private void getData(){

                   IntentmainIntent = new Intent(Intent.ACTION_MAIN, null); 

            mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

//          new ImageView(ShowDevelopments.this); 

            info = getPackageManager().queryIntentActivities(mainIntent, 0);

         }

         private class MyAdapter extendsBaseAdapter{

                   privateList<ResolveInfo> info;

                   private LayoutInflaterinflater;

                   privateMyAdapter(List<ResolveInfo> info){

                            this.info=info;

                            inflater=getLayoutInflater();

                   }

                   @Override

                   public int getCount() {

                            returninfo!=null?info.size():0;

                   }

 

                   @Override

                   public Object getItem(intposition) {

                            returninfo.get(position);

                   }

 

                   @Override

                   public long getItemId(intposition) {

                            return position;

                   }

 

                   @Override

                   public View getView(intposition, View convertView, ViewGroup parent) {

                            View[] view=newView[2];

                            if(convertView==null){

                                     convertView=inflater.inflate(R.layout.item_showdata,null);

                                     view[0]=convertView.findViewById(R.id.show_image);

                                     view[1]=convertView.findViewById(R.id.chengxu);

                                     convertView.setTag(view);

                            }

                            view=(View[])convertView.getTag();

                            ((TextView)view[1]).setText(info.get(position).loadLabel(getPackageManager()));

                            ((ImageView)view[0]).setImageDrawable((info.get(position).loadIcon(getPackageManager())));

                            return convertView;

                   }                

         }

}

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Gridview实现简单launcher

  • 2015年10月16日 11:09
  • 2.47MB
  • 下载

简单分析Launcher--/src/Workspace.Java

http://lostghoul.blog.163.com/blog/static/11172199920112149294214/ 在Workspace.Java类实现,相关方法有:  a...
  • life02
  • life02
  • 2012年04月18日 17:43
  • 1625

Android 开发之系统应用Launcher详解,简单添加和删除快捷方式及常见问题

转载自:http://blog.csdn.net/t12x3456/article/details/7857925 Android 开发之系统应用Launcher详解,简单添加和删除快捷方式...
  • yy228
  • yy228
  • 2012年08月13日 14:30
  • 534

Android创建简单的Launcher应用程序(二)

Android创建Launcher应用程序实现自定义Launcher中显示所有应用程序图标,且可以点击进入响应的程序。activity_main.xml布局...

launcher中celllayout类简单分析

http://blog.sina.com.cn/s/blog_674212810100yi30.html 1) 大家都知道workspace是有celllayout组成。Celllayout被划分为...
  • pgalxx
  • pgalxx
  • 2011年09月09日 13:45
  • 973

Launcher简单学习(一)布局基础与常用类的认识

一、前言:最近在研究有关Android桌面和主菜单数据加载与UI绑定,索性就写几篇文章来总结一下,先说一下我采用的是Launcher3的源码进行研究的,相对于Launcher2多了一些特性与优化吧。比...

launcher2中图标拖拽的简单分析

相关的文件:DragController:拖动控制接口。DragLayer:整个launcher的父节点,继承FrameLayout,实现接口DrayController。DragSource:拖动源...
  • hmg25
  • hmg25
  • 2011年03月02日 11:45
  • 6341

原来PATH的菜单效果如此简单。布局+TranslateAnimation搞定 and 高仿小米launcher(ZAKER)跨屏拖动item 02-29最新更新

http://www.eoeandroid.com/thread-157511-1-1.html 提取了下PATH的菜单的那种动画效果。先看贴图   源码:  PathMenu.zi...

最简单的Launcher工程

开发Launcher与其它的应用差不多 创建Launcher工程 展示所有的应用 点击图标实现跳转创建Launcher工程 如图: 初始化R...

Launcher的简单讲解一

Launcher的简单讲解一 Launcher俗称HomeScreen,也就是我们启动Android手机,第一眼看到的应用程序,而这个应用程序是比较特殊而且任务艰巨的。 它负责了我们除了应用本...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Launcher的简单介绍
举报原因:
原因补充:

(最多只允许输入30个字)