1. 程式人生 > >android launcher3修改內建的系統圖標顯示

android launcher3修改內建的系統圖標顯示

/packages/apps/Launcher/res/xml/default_workspace.xml中記錄了系統初始化或者恢復出廠設定時桌面上圖示的排列。Launcher程式第一次執行完畢以後,會在/data/data/com.android.launcher/databases/launcher.db中建立記錄,裡面有所有當前的桌面圖示。以後每次啟動只會從這裡讀取桌面圖示。

下面簡單分析一下default_workspace.xml:

default_workspace.xml中,支援的標籤有:

favorite:應用程式快捷方式。

shortcut:連結,如網址,本地磁碟路徑等。

search:搜尋框。

clock:桌面上的鐘表Widget

支援的屬性有:

launcher:title,圖示下面的文字,目前只支援引用,不能直接書寫字串。

launcher:icon,圖示引用。

launcher:uri,連結地址。

launcher:packageName,應用程式的包名。

launcher:className,應用程式的啟動類名。

launcher:screen,圖示所在的螢幕編號。

launcher:x,圖示在橫向排列上的序號。

launcher:y,圖示在縱向排列上的序號。

LauncherProvider.java裡面的loadFavorites方法負責解析。

應用程式的寫法,default_workspace.xml中有很多,對連結的寫法卻沒有,我分析了一下它的解析程式,反向做出了連結快捷方式的寫法,已經驗證成功,希望可以幫到大家。

<shortcut

        launcher:title="@string/aaa"

        launcher:icon="@drawable/aaa"

        launcher:uri="http://www.aaa.com"

        launcher:screen="1"

        launcher:x="0"

        launcher:y="3" />

連結的圖示內容和文字內容是從default_workspace.xml中獲取到的。

應用程式的圖示內容和圖示下面的文字內容都是從PackageManager中獲取到的。

如果Launcher啟動時,應用程式的包名和類名因為某種原因沒有在PackageManager中找到,桌面就不會顯示它的圖示。如果類名和包名找到了,但是圖示沒有找到,會顯示Android預設的小機器人圖示。

所以,要在default_workspace.xml中加入錠接時,只要寫上title,icon,uri,screen,x,y這幾個屬性就可以了。

而要加入應用程式時,只要寫上packageName,className,screen,x,y這幾個屬性就可以了。

相關推薦

android launcher3修改系統顯示

/packages/apps/Launcher/res/xml/default_workspace.xml中記錄了系統初始化或者恢復出廠設定時桌面上圖示的排列。Launcher程式第一次執行完畢以後,會在/data/data/com.android.launcher/da

win10系統顯示異常

驅動 小夥伴 更新 解決 分享圖片 con 出現 但是 sha 經過多次更新,win10系統的穩定性有了一定的提高,但是避免不了會出現一些問題,有用戶反映win10系統圖標顯示出現有異常,這可能是win10系統圖標緩存出現的問題導致的。但是針對這一問題該如何解決,下面來說一

Linux系統下為任何應用創啟動

桌面啟動 輸入 可執行文件 可執行 odin 窗口 des hub 歸類 很多時候,我們的軟件是通過github項目或者解壓zip tar包等獲取的,系統是搜不到這個應用的,設置沒有啟動圖標,每次都需要啟動安裝目錄的運行文件./XXXtest非常不方便,但我們是可以自行創建

android怎麼在launcher修改apk的icon

找到launcher下的IconCache中新增變數用來儲存要修改apk的包名 及要修改成的icon     private String[] className = {"com.google.android.apps.maps","com.google.android.g

Android Studio 那些事|Activity文件前標識顯示為 j 而是 c

div roi 右下角 ext blog 識圖 cti 問題: content 問題:Activity文件前標識圖標顯示為 j 而是 c 的圖標,或是沒有顯示,並且自己主動提示不提示 解決:這是由於你的studio設置了省電模式,你能夠通過 File>

android 自己主動拒接後再取消自己主動拒接,該聯系人來電界面無顯示,且點擊掛斷無反應

例如 圖標 data ould lds 方法 pop ext 顯示 1. 設置一個聯系人為自己主動拒接 2. 該聯系人來電 3. 取消該聯系人的自己主動拒接 4. 該聯系人來電 Error: 來電界面無頭像顯示,直接顯示黑屏,且點擊拒接butto

Egret打包App 修改App名稱和 (Egret4.1.0)

ring 項目 mil src image val 白色 span value 圖標替換位置在項目res下的drawable這些目錄下,用新圖標覆蓋即可。 這裏我用白色圖片替換了白鷺默認的圖片ic_launcher.png 修改App名字,在res->

ionic ion-tab修改, 自動以tab

dir pos img oot html handle div read direct 遇到需要自定義tab圖標很簡單, 只需要自定義相應的css就可以了, 這裏要註意的是如何調整背景圖片的大小. <ion-view hide-back-button="false"

linux(ubuntu) 創桌面

mys devel navicat intellij evel log 執行權 avi mina 1 創建desktop後綴文件 2 添加內容 [Desktop Entry]Name=navicat// 應用名字Exec=/opt/navicat112_mysql_cs_

springboot:修改tomcat版本

一般情況下,完全沒有必要去修改 tomcat 的版本,就算是生產環境使用的 spring boot 內建版本,也是最好使用 spring boot的內建的 tomcat 版本,這是經過相容測試、迴歸測試的版本號。可能有的同學會說,生產環境下還不敢冒險去使

修改tomcat預設上傳檔案大小

1.專案使用的是Spring Boot + Spring Cloud,上傳附件報超出自帶tomacat限制大小(預設1M) org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException:

Android7.1 刪除下拉通知欄中的系統(mtk)

在frameworks/base/packages/systemui/res/values/config.xml這個檔案中有如下配置: <string name="quick_settings_tiles_default" translatable="false"> wifi,bt

Android Studio新建模擬器

這是一篇很簡單的教程,基本步驟與Eclipse大體相同,留給後來者參閱 首先,開啟Android Studio,在主介面中找到模擬器管理按鈕,如下: 開啟後,若沒有新增過模擬器,會是以下介面: 點選:Create Virtual Device,進入新建模擬器介面: 簡

android 刪除圖片後通知系統庫刪除圖片

//刪除檔案後更新資料庫 通知媒體庫更新資料夾,!!!!!filepath(資料夾路徑)要求儘量精確,以防刪錯 public static void updateFileFromDatabase(Context context,String filepath){ Strin

Windows系統賬戶:Local system/Network service/Local Service 區別

LocalSystem 賬戶 LocalSystem是預設的擁有本機所有許可權的本地賬戶,這個賬戶跟通常的使用者賬戶沒有任何關聯,也沒有使用者名稱和密碼之類的憑證。這個服務賬戶可以開啟登錄檔的HKEY_LOCAL_MACHINE\Security鍵,當LocalSyste

系統丟失

windows軟體圖示丟失,可以清空圖片快取解決,辦法是下面程式碼儲存為x.bat,雙擊執行即可。 rem 關閉Windows外殼程式explorer taskkill /f /im explorer.exe rem 清理系統圖標快取資料庫 attrib -h -s -r

修復Win10工作列開始選單等系統無法點選問題

升級win10之後,有時會莫名其妙發現工作列上面包括開始選單、小娜、日曆、系統通知等系統圖標都無法點選,並且重啟系統之後並沒有自動修復。發生這種情況可以嘗試以下解決方法: 方法一:解除安裝衝突軟體 這種情況有可能是存在衝突軟體引起的。如果你確定這種情況是

Android手機中了一款高效能webkit核心瀏覽器

           這個事件就是開始載入頁面呼叫的,通常我們可以在這設定一個loading的頁面,告         訴使用者程式在等待網路響應。            在頁面載入結束時呼叫。同樣道理,我們知道一個頁面載入完成,於是我們可以關        閉loading 條,切換程式動作。   

Android 系統工程中APK

有些時候需要將一些自已寫的apk內建到系統,也就是第三方內建。內建的原因一部是讓apk擁有系統級許可權,一部分為了內建apk定製刷機包。 系統級: 1、先在package/apps中建立一個資料夾,如HWScanServer 2、將編譯好的apk以及所以呼叫的so庫放

2000下自定義函式呼叫不確定性系統函式

2000下自定義函式和不確定性內建系統函式 作者:hapyflystoneblog:http://blog.csdn.net/happyflytone 轉載請註明出處   我們經常在想自定義函式內呼叫一些不確定性的系統函式,可是天不作美系統會報錯,下面演示一下系統函式getdate(). --建