天天看點

Android->Launcher3:桌面布局說明

說明

介紹一下機子開機後,預設加載到桌面的程式快捷方式、小插件、和檔案夾的修改方法。在4.0之後launcher 還加入了快捷方式導覽列-hotSeat,也介紹下如何把程式預設加載在hotseat上。

1. Workspace

用于顯示桌面圖示、快捷方式、widget和檔案夾等

配置顯示布局

value/config.xml
<!-- Folder max bounds and max number of items. Note: folder_max_count_x * folder_max_count_y
      >= folder_max_num_items. When these are set to -1, they are automatically determined. -->
 <integer name="folder_max_count_x">4</integer> 
 <integer name="folder_max_count_y">4</integer>   
 <integer name="folder_max_num_items">16</integer>/* 桌面檔案夾支援的最大内容元素的個數*/

 <integer name="cell_count_x">4</integer> /*桌面可以擺放圖示的空間,x軸4格*/
 <integer name="cell_count_y">4</integer>/*桌面可以擺放圖示的空間,y軸4格*/
           

配置桌面圖示、widget、快捷方式,超連結和檔案夾

xml/default_workspace.xml

用于配置預設的桌面應用的圖示、widget、快捷方式,超連結和檔案夾。

下面列出default_workspace支援的标簽和屬性:

标簽:
  • widget: 桌面控件
  • favorite: 應用程式快捷方式。
  • shortcut: 連結,如網址,本地磁盤路徑等。
  • search: 搜尋框。
  • clock: 桌面上的鐘表Widget
  • folder: 桌面檔案夾
屬性:
  • launcher:title:圖示下面的文字,目前隻支援引用,不能直接書寫字元串;
  • launcher:icon:圖示引用;
  • launcher:uri:連結位址,連結網址用的,使用shortcut标簽就可以定義一個超連結,打開某個網址,檔案等。
  • launcher:packageName:應用程式的包名;
  • launcher:className:應用程式的啟動類名;
  • launcher:screen:圖示所在的螢幕編号;
  • launcher❌圖示在橫向排列上的序号;
  • launcher:y:圖示在縱向排列上的序号;
  1. 快捷方式說明:
<favorite                                  //程式快捷鍵屬性标簽

    launcher:packageName="com.android.browser.BrowserActivity"                  //該應用的包名
    launcher:className="com.android.browser"     //該應用的類,點選圖示時,需要啟動的類
    launcher:screen="1"  //第1屏,0-4屏共5屏
    launcher:x="0"       //圖示X位置,左上角第一個為0,向右遞增,共 cell_count_x 個
    launcher:y="0"       //圖示Y位置,左上角第一個為0,向下遞增,共 cell_count_y個
/>
           
  1. 桌面Widget的标簽:
<appwidget                                  //插件
   launcher:className="de.dnsproject.clock_widget_main.Clock1AppWidgetProvider"  //該應用的類
   launcher:packageName="de.dnsproject.clock_widget_main" //該應用的包名
   launcher:screen="1"//第1屏,0-4屏共5屏
   launcher:x="2"  //圖示X位置,左上角第一個為0,向左遞增,共cell_count_x個
   launcher:y="1" //圖示Y位置,左上角第一個為0,向下遞增,共cell_count_y個
   launcher:spanX="3"                                           //在x方向上所占格數
   launcher:spanY="2" />                                        //在y方向上所占格數
           
  1. 搜尋欄:
<search                                //搜尋欄
	launcher:screen="1"               //從0開始,第2屏
	launcher:x="0"                    //圖示X位置
	launcher:y="1"/>                  //圖示Y位置
           
  1. 連結:
<shortcut
	launcher:title="@string/google"                         //連結的标簽
	launcher:icon="@drawable/google"                        //連結的icon
	launcher:uri="http://www.baidu.com"                  //連結的uri位址,支援網址、action等
	launcher:screen="1"                                  //第1屏
	launcher:x="0"                                        //圖示X位置
	launcher:y="3" />                                //圖示Y位置 
           
下面列舉幾個常用launcher:uri的寫法:
  • 跳轉到網頁: “http://www.google.com”
  • 跳轉到設定的輔助功能:"#Intent;action=android.settings.ACCESSIBILITY_SETTINGS;end"
  • 打開音樂檔案:“file:///mnt/sdcard/song.mp3#Intent;action=android.intent.action.VIEW;type=audio/mp3;end”
  • 指定應用程式打開音樂檔案:“file:///mnt/sdcard/song.mp3#Intent;action=android.intent.action.VIEW;type=audio/mp3;component=com.android.music/.MusicBrowserActivity;end”

如果你覺得連結格式容易出錯,你可以先寫一個對應的intent,然後uri=intent.toUri(0)

Intent it = new Intent(Intent.ACTION_VIEW);

Uri uri = Uri.fromFile(new File("/mnt/sdcard/song.mp3" ));

it.setDataAndType(uri, “audio/mp3”);

it.setClassName(“com.android.music”, “com.android.music.MusicBrowserActivity”);

String lancher_uri = it.toUri(0);

  1. 檔案夾:
<folder launcher:title="@string/WS_Utility"
   launcher:x="4" 
   launcher:y="0"
   launcher:screen="2"
>
<favorite launcher:packageName="com.mx.browser" launcher:className="com.mx.browser.SplashActivity"  launcher:x="0" launcher:y="0" />
<favorite launcher:packageName="com.dropbox.android" launcher:className="com.dropbox.android.activity.DropboxBrowser"  launcher:x="1" launcher:y="0"  />
<favorite launcher:packageName="cn.wps.moffice_eng" launcher:className="cn.wps.moffice.documentmanager.PreStartActivity" launcher:x="2" launcher:y="1" />
</folder>
           

2. hotseat

Hotseat為底部的導覽列,用于配置常用的app桌面圖示。

配置

values/config.xml

<!-- Hotseat -->
    <bool name="hotseat_transpose_layout_with_orientation">true</bool>//hotseat是否會跟随手機方向移動位置
    <integer name="hotseat_cell_count">5</integer> //hotseat上可配置的圖示數,但一定會有個allapp按鈕,是以使用者配置的圖示數是hotseat_cell_count-1
    <integer name="hotseat_all_apps_index">2</integer>  // allapp按鈕所在的位置,從左往右,從0開始算。
    <!-- must be between 0 and 100 -->
    <integer name="hotseat_item_scale_percentage">100</integer>  //圖示的縮放比例
           
注:以上配置android10.0以上無效

配置應用圖示

xml/default_workspace.xml

注:同workspace下的favorite: 應用程式快捷方式。僅有兩處差別

  1. launcher:container:表示應用快捷方式所在位置,-100為桌面圖示 ,-101為hotseat圖示;預設為-100 ,在這裡需要辨別為-101 ,代表是hotseat的預設按鈕。
  2. launcher:screen:代表按鈕的位置,0是第一個位置。ALlApp按鈕預設是2(見values/config.xml中的hotseat_all_apps_index),是以上面并沒有screen為2的标簽
<favorite
        launcher:packageName="com.android.browser"
        launcher:className="com.android.browser.BrowserActivity"
        launcher:container="-101"
        launcher:screen="0"
        launcher:x="0"
        launcher:y="0" />

   <favorite
        launcher:packageName="com.android.settings"
        launcher:className="com.android.settings.Settings"
        launcher:container="-101"
        launcher:screen="1"
        launcher:x="1"
        launcher:y="0" />



    <favorite
        launcher:packageName="com.android.gallery3d"
        launcher:className="com.android.camera.CameraLauncher"
         launcher:container="-101"
        launcher:screen="3"
        launcher:x="3"
        launcher:y="0" />