Android中源码Launcher主屏幕程序排列详解【安卓Launcher进化一】

最近研究Lancher,从短信Mms的框架中过度到Launcher的bug和需求修改中,下面对launcher最简单的主屏幕程序的程序的布局的详解,给读者一个入门的感觉,android的主屏幕一共分为5个屏幕,从左到右依次是:0,1,2,3,4。所以想在那个主屏幕放哪些程序或者widget都可以在布局文件中实现,下面我就说说这个布局文件default_workspace.xml。这是对主屏幕进行排列的布局文件,在这里面写好,程序运行后就可以实现哪个屏幕放那些特定的程序或widget了。下面先看截图,分别为图(1)和图(2)。图(1)为3屏即为主屏的布局,最下面放了4个程序的快捷方式。图(2)为我粗糙地画了一个大概的一个面貌,屏幕一般被分为2维坐标的,左上角为原点(0,0),横向的为x轴(坐标向右依次加1,分别是0,1,2,3),竖向的为y轴(向下依次加1,分别是0,1,2,3)。大明原创:转载请标明出处:http://blog.csdn.net/wdaming1986/article/details/6978814。先看截图,下面看布局文件中的代码:

 

                                                                       

                                                                       图 (1)                                                                                                 图(2)


下面看布局文件中的代码:               

[html]  view plain copy print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <!-- Copyright (C) 2009 The Android Open Source Project  
  3.   
  4.      Licensed under the Apache License, Version 2.0 (the "License");  
  5.      you may not use this file except in compliance with the License.  
  6.      You may obtain a copy of the License at  
  7.   
  8.           http://www.apache.org/licenses/LICENSE-2.0  
  9.   
  10.      Unless required by applicable law or agreed to in writing, software  
  11.      distributed under the License is distributed on an "AS IS" BASIS,  
  12.      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
  13.      See the License for the specific language governing permissions and  
  14.      limitations under the License.  
  15. -->  
  16.   
  17.    <favorites xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">  
  18.     <!--  Far-left screen [0] -->  
  19.   
  20.     <!--  Left screen [1] -->  
  21.     <appwidget  
  22.         launcher:packageName="com.google.android.apps.genie.geniewidget"  
  23.         launcher:className="com.google.android.apps.genie.geniewidget.miniwidget.MiniWidgetProvider"  
  24.         launcher:screen="1"  
  25.         launcher:x="0"  
  26.         launcher:y="0"  
  27.         launcher:spanX="4"  
  28.         launcher:spanY="1" />  
  29.           
  30.     <!--  Middle screen [2] -->  
  31.     <search  
  32.         launcher:screen="2"  
  33.         launcher:x="0"  
  34.         launcher:y="0" />  
  35.   
  36.     <appwidget  
  37.         launcher:packageName="com.android.protips"  
  38.         launcher:className="com.android.protips.ProtipWidget"  
  39.         launcher:screen="2"  
  40.         launcher:x="0"  
  41.         launcher:y="1"  
  42.         launcher:spanX="4"  
  43.         launcher:spanY="1" />  
  44.     <favorite  
  45.         launcher:packageName="com.android.Mms"  
  46.         launcher:className="com.android.Mms.MainActivity"  
  47.         launcher:screen="2"  
  48.         launcher:x="0"  
  49.         launcher:y="3"  
  50.     />  
  51.     <favorite  
  52.         launcher:packageName="com.android.phone"  
  53.         launcher:className="com.android.phone.MainActivity"  
  54.         launcher:screen="2"  
  55.         launcher:x="1"  
  56.         launcher:y="3"  
  57.     />  
  58.     <favorite  
  59.         launcher:packageName="com.android.Email"  
  60.         launcher:className="com.android.Email.MainActivity"  
  61.         launcher:screen="2"  
  62.         launcher:x="2"  
  63.         launcher:y="3"  
  64.     />  
  65.     <favorite  
  66.         launcher:packageName="com.android.yuemei"  
  67.         launcher:className="com.android.yuemei.MainActivity"  
  68.         launcher:screen="2"  
  69.         launcher:x="3"  
  70.         launcher:y="3"  
  71.     />  
  72.     <!--  Right screen [3] -->  
  73.     <appwidget  
  74.         launcher:packageName="com.android.music"  
  75.         launcher:className="com.android.music.MediaAppWidgetProvider"  
  76.         launcher:screen="3"  
  77.         launcher:x="0"  
  78.         launcher:y="0"  
  79.         launcher:spanX="4"  
  80.         launcher:spanY="1" />  
  81.   
  82.     <appwidget  
  83.         launcher:packageName="com.android.vending"  
  84.         launcher:className="com.android.vending.MarketWidgetProvider"  
  85.         launcher:screen="3"  
  86.         launcher:x="1"  
  87.         launcher:y="1"  
  88.         launcher:spanX="2"  
  89.         launcher:spanY="2" />  
  90.   
  91.     <!--  Far-right screen [4] -->  
  92.   
  93. </favorites>  

      标签讲解:

             <appwidget>为添加相应的widget;

             <search>为添加google搜索框;

             <favorite>为添加程序的快捷方式;

      属性讲解:

              launcher:packageName="com.android.vending "  程序的包的名字。

              launcher:className="com.android.vending.MarketWidgetProvider"  程序入口类的名字。

              launcher:screen="3" 表示在屏幕的位置,从左向右依次为:0,1,2,3,4.共5屏,第2屏为主屏幕。

              launcher:x="1" 在X轴的位置,如图(2)所画。向右依次增加,分别为0,1,2,3.共4个。

              launcher:y="1" 在Y轴的位置,如图(2)所画。向下依次增加,分别为0,1,2,3.共4个。

              launcher:spanX="4" 在X轴上占的格数。"4"代表占4格。

              launcher:spanY="2" 在Y轴上占的格数,"2"代表占2格。

 

     大明原创:转载请标明出处:http://blog.csdn.net/wdaming1986/article/details/6978814

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值