1. 程式人生 > >Android8.1關機充電動畫位置

Android8.1關機充電動畫位置

1.定義螢幕解析度以取圖片的目錄地方:

vendor/mediatek/proprietary/bootable/bootloader/lk/project/xxx.mk中:

BOOT_LOGO := hd720

同事圖片資源的檔案目錄在:vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo

下面有很多各種解析度的圖片原始檔案,並且在log中有一個顯示規則檔案,rules.mk,可以在裡面定義顯示順序以及相關的內容。


2.將資原始檔配置好之後,在程式碼中進行相應的配置:

首先在程式碼bootloader/lk/lib/libshowlogo目錄裡的show_animation_common.c檔案中新增相應的顯示程式碼:


並且重新寫相關實現函式:fill_logo(),show_charger_ov_logo(),show_charger_low_logo(),show_kpoc_charge_logo()等實現。

其次,在vendor/mediatek/proprietary/external/libshowlogo目錄中對應也有show_animation_common.c程式碼在中新增具體的顯示圖片的位置與大小


這裡主要是對在首先螢幕上顯示圖片的位置的畫素點位置,這個需要自己通過提供的圖片的大小進行計算。上面的定義的巨集中,主要有顯示充電動畫的位置,以及電量數字的畫素位置,以及百分比的位置,當然這裡可以進行自己定義。同時也要實現自己對充電動畫的填充,顯示動畫,電量數字以及百分比的區間等相關顯示功能的函式。(具體就不展示了)。

在該目錄下還有一個檔案需要修改charging_animation.cpp檔案中:

對充電的過壓,高溫,低溫等警告圖片的顯示函式的實現。具體去實現:show_logo(),show_lowtemp_logo(),show_hightemp_logo()函式功能,以及在原有的show_low_battery()和show_charger_ov_logo()函式中新增自己實現的個性化函式呼叫。

還有,在vendor/mediatek/proprietary/external/charger中的函式中bootlogo_show_charging()函式中,新增相關的高低溫以及過充的顯示logo,

在common.cpp程式碼中的get_battnotify_status()函式中新增需要新增上層報告電池狀態訊息。

最後,在平臺程式碼中進行新增相關的函式功能,在vendor/mediatek/proprietary/bootable/bootloader/lk/platform/mt67XX/目錄中,在程式碼mt_logo.c中,在函式mt_disp_show_kpoc_charge_logo(),mt_disp_show_charger_ov_logo(),mt_disp_show_low_battery(),中新增自己實現的函式。

在platform.c程式碼中platform_init()函式中新增mt_disp_show_kpoc_charge_logo(),以顯示關機充電的第一張圖片。

到這裡基本就新增完了,注意,自己新增的程式碼最好是使用巨集控制,要在vendor/mediatek/proprietary/external/libshowlogo的Android.mk檔案中新增你在該目錄下修改的檔案的程式碼控制的巨集,以及你其他地方修改的需要新增的專案的巨集。

(以上是根據具體專案進行總結的,有不正之處,敬請指正,但是也有其他地方不太明白,請熱心人指點迷津!)