開發Android APP的同學是否對於Launcher實現的絢麗效果而痴迷呢?什么,連Android Launcher是什么都不知道。好吧,拿起儂的手機,在解鎖后的首頁界面上左右滑動滑動,體驗體驗,這個就是Launcher。
Launcher其實也是一個APP,不過人家是系統級別的。雖然各個android手機廠商對Launcher的定制化程度比較高,但是為了避免用戶使用的困惑,Launcher的操作和功能基本都差不多。下面簡單介紹下Launcher桌面的幾個共同特征。
1、分屏顯示APP圖標和名稱
2、APP圖標可以在當前屏幕中拖動,稍牛逼的可以跨屏拖動
3、在拖動過程中交換位置,出現一系列漂亮的位移動畫
4、拖動結束后,Lancher會記住重新排列的位置
5、APP圖標可以被刪除,刪除后,后面的圖片會依次向前位移過去
6、橫向滑動Launcher進行切屏,背景圖片會聯動起來
總結完畢,介紹那么多,都是為了今天的干貨做襯托。今天十足的干貨,分量極沉,沉甸甸壓得我一天都不得空閑,只為擠出時間整理出實現的代碼。下面介紹下今天干貨相對於原生Launcher的優勢。
1、分屏數可以無限擴展,可以為一屏,也可以為10屏,同時也不用為OOM煩惱,滑動也相當的流暢
2、每個Item的圖標可以為兩張圖片,一張Normal狀態下顯示,一張Press狀態現實
3、動態設置每屏的行數和列數,示例代碼使用的是4行2列,並且自動計算item的寬度和高度
4、動態設置Container的item總數,根據行數列數,自動計算頁數
5、長按即可進入編輯模式,點擊即可刪除item;添加item也是相當的簡單方便。
下面看下靜止的效果,想把玩一番的同學請去Github下載安裝
今天代碼都不貼了,源碼的注釋寫的很詳細,相信閱讀起來應該沒有什么困難。對於喜歡研究Android特效的同學和業務上有這種需求的同學,相信今天的干貨會幫助蠻大的。為了效果上的美觀,我A了上個東家的幾張圖,希望大家不要商用,僅供學習交流之用。
代碼地址:https://github.com/JackCho/AndroidLauncher
如果覺得對你有所幫助,歡迎大家訂閱我的微信公眾賬號——Android干貨分享(ID:android_share)。下面是微信的二維碼,為你提供及時高質的Android干貨。技術交流QQ群:318588906,歡迎大家加群,共同探討下Android和Java技術,一起壯大我們的微信干貨分享社區。