Launcher 學習 (一) 圖標位置修改

由於剛剛啓動android 源碼的學習 上週完成了android 4.0.3的下載與編譯 這周開始着手對launcher進行修改



  這是我們桌面的界面


我希望把Camera 開機的時候移動到左側。恩就是這樣。





首先介紹下原理 (雖然我也不是很懂 希望不是誤導大家 我寫這個更多爲了自己經驗的積累 別噴我。。)

下面是XML代碼 位於android源代碼目錄下的(android版本不同可能有差異)

.../packages/apps/Launcher2/res/xml/default_workspace.xml


<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2009 The Android Open Source Project

    。。。。。省略1000字
-->

<favorites xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher">
    <!-- Far-left screen [0] -->

    <!-- Left screen [1] -->
    <appwidget
        launcher:packageName="com.android.settings"
        launcher:className="com.android.settings.widget.SettingsAppWidgetProvider"
        launcher:screen="1"
        launcher:x="0"
        launcher:y="2"
        launcher:spanX="4"
        launcher:spanY="1" />

    <!-- Middle screen [2] -->
    <appwidget
        launcher:packageName="com.android.deskclock"
        launcher:className="com.android.alarmclock.AnalogAppWidgetProvider"
        launcher:screen="2"
        launcher:x="1"
        launcher:y="0"
        launcher:spanX="2"
        launcher:spanY="2" />


    <favorite
        launcher:packageName="com.android.camera"
        launcher:className="com.android.camera.Camera"
        launcher:screen="2"
        launcher:x="3"
        launcher:y="3" />

    <!-- Right screen [3] -->
    <favorite
        launcher:packageName="com.android.gallery3d"
        launcher:className="com.android.gallery3d.app.Gallery"
        launcher:screen="3"
        launcher:x="0"
        launcher:y="3" />
    <favorite
        launcher:packageName="com.android.settings"
        launcher:className="com.android.settings.Settings"
        launcher:screen="3"
        launcher:x="2"
        launcher:y="3" />

 <!-- 省略1000字 -->

</favorites>

簡單介紹下  一下內容部分轉載自 http://www.apkbus.com/forum.php?mod=viewthread&tid=125384

<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,向左遞增,0-4共5個
    launcher:y="1"                                                 //圖標Y位置,左上角第一個爲0,向下遞增,0-2共3個
    launcher:spanX="3"                                             //在x方向上所佔格數
    launcher:spanY="2" />                                          //在y方向上所佔格數




    快捷方式說明
    <favorite                                  //程序快捷鍵屬性標籤
        launcher:className="com.apical.radio.radioMainActivity"     //該應用的類,點擊圖標時,需要啓動的類
        launcher:packageName="com.apical.radio"                  //該應用的包名
        launcher:screen="1"                             //第1屏,0-4屏共5屏
        launcher:x="0"                                   //圖標X位置,左上角第一個爲0,向左遞增,0-4共5個
        launcher:y="0"                               //圖標Y位置,左上角第一個爲0,向下遞增,0-2共3個
    />


反正改位置就修改 這裏後面的值就OK了  launcher:x="0"                                 

launcher:y="0" 修改後要使源碼生效需要(我是懶人 ,,直接make的。。)

mmm packages/apps/Launcher2

make snod

還需要把之前的用戶數據清空(我之前一直不知道還有這一步。。卡了很久) 我

們使用adb工具 先開啓emulator 然後 adb devices 觀察下 發現有隻emulator



adb -s emulator-5554 shell

連上後

cd data/data/com.android.launcher

rm -r databases

重新運行emulator就OK了~ 是不是位置或者大小改變了呢


發佈了22 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章