Come utilizzare una GIF come chiave Home Navbar Android

Alcune menti brillanti nella comunità Android hanno capito come modificare la barra di navigazione per utilizzare un GIF animato come chiave di casa e Appuals ha la guida per farlo!

Avvertenza: questo è un processo abbastanza coinvolto. Devi decompilare il tuo SystemUI.apk, pasticciare con alcuni file importanti e ricompilarlo di nuovo insieme. Fai un backup del tuo SystemUI.apk in caso qualcosa vada storto!

Guide per gli app correlati:

  • Come impostare manualmente l'interfaccia utente del sistema Android
  • Come decompilare e temi APK Android
  • Come eseguire il deodex degli APK su ROM di riserva

Requisiti:

  • Un telefono Android rootato (Appuals ha molte guide root Android!)
  • Uno strumento di decompilazione APK ( consigliamo APK Easy Tool)
  • Un buon editor di codice come Notepad ++

Decompilare SystemUI.apk

La prima cosa che devi fare è deodexare SystemUI.apk: per questo puoi utilizzare uno strumento come Tickle My Android. Leggi la guida agli Appual per gli APK di deodexing su questo processo.

Il prossimo passo è decompilare SystemUI.apk, che richiede una guida da solo se non l'hai mai fatto prima - fortunatamente, Appuals ha "Come interfacciare manualmente l'interfaccia utente del sistema Android" con istruzioni di decompilazione, quindi dai una lettura se non hai mai decompilato un APK prima.

Aggiunta dei file SMALI

Ora devi aggiungere nuovi file smali: c'è un pacchetto di file .smali già modificati per esattamente ciò che dobbiamo fare disponibile QUI. In particolare, è necessario estrarre il file "SelfAnimatingImageView.smali" da .zip e aggiungerlo all'APK decompilato nella directory:

 SystemUI.apk \ Smali \ com \ Android \ morningstar \ 

Dovrai creare queste cartelle se non esistono.

Dividere una GIF in cornici

Ora devi trovare un file GIF animato che ti piace e che desideri utilizzare come pulsante home della barra di navigazione. Dovresti usare una gif adesiva, come puoi trovare su Giphy.com/stickers: noterai che hanno sfondi trasparenti come un PNG, ma in realtà sono GIF.

Una volta salvato un GIF adesivo che ti piace, devi convertirlo in una serie di PNG. Questo perché il nostro SystemUI modificato non eseguirà effettivamente un file .gif nativo, ma riprodurrà i PNG in ordine sequenziale. Quindi dobbiamo dividere il .gif in PNG sequenziali, per fortuna possiamo farlo facilmente con un convertitore online come EZGIF Split.

Carica semplicemente la tua GIF nello strumento EZGIF Split, scegli "Output immagini in formato PNG" dal menu a discesa Opzioni di divisione ed estrarrà tutti i frame in ordine sequenziale. Quindi è possibile scaricare i frame insieme in un file ZIP.

Ora è necessario aggiungere i frame PNG dal GIF diviso alla cartella “ drawable-xxxDPIappropriata nella cartella apk SystemUI decompilata. La cartella che utilizzerai dipende dal DPI del tuo dispositivo, quindi:

  • MDPI = ~ 160 DPI
  • HDPI = ~ 240 DPI
  • XHDPI = ~ 320 DPI
  • XXHDPI = ~ 480 DPI
  • XXXHDPI = ~ 640 DPI

Ora abbiamo bisogno di un file XML che indichi ad Android quali immagini utilizzare per l'animazione e la velocità con cui scorrere. Torna allo ZIP scaricato in precedenza e prendi "frame_anim.xml" e copialo nella cartella "res \ drawable" all'interno dell'APK decompilato.

Se apri frame_anim.xml in Notepad ++, dovrebbe apparire così:

Ogni riga che inizia con

E infine, prima di poter ricompilare SystemUI.apk, dobbiamo mettere la nostra animazione sulla barra di navigazione. Questo è un po 'complicato, poiché modificheremo il file XML di layout. Nella maggior parte delle ROM stock, il codice che controlla il softkey HOME della barra di navigazione si trova in "layout \ navigation_bar.xml", ma potrebbe anche essere trovato in "layout \ home.xml". Devi cercare in giro per questo, a seconda della tua ROM.

Fondamentalmente, stai cercando qualsiasi file XML di layout che contenga il codice simile al seguente:

android: id = "@ id / home_button" android: layout_width = "0.0dip" android: layout_height = "0.0dip" android: scaleType = "center" android: contentDescription = "@ string / accessibility_home" systemui: keyCode = "3" /> 

Saprai di essere nel file XML giusto quando vedi linee che fanno riferimento a home_button o simili. Quello che dobbiamo fare è nascondere questa chiave HOME e metterne una nuova al suo posto che avrà le stesse dimensioni, ma invisibile, e quindi le nostre cornici animate vi passeranno sotto. In realtà è abbastanza semplice, tutto ciò di cui abbiamo bisogno è un codice FrameLayout .

Se esaminerai questo codice, vedrai come abbiamo tre cose diverse sovrapposte. Ma quando l'app è in esecuzione, non la vedrai - tutto ciò che vedrai sarà la tua GIF animata in cui il tasto HOME dovrebbe trovarsi sulla barra di navigazione.

Quindi tutto ciò che devi fare è sostituire la riga di codice del softkey HOME con il codice FrameLayout sopra, ma potresti doverlo modificare per la tua particolare ROM. Qui sono necessari un po 'di tentativi ed errori.

Ricompilazione dell'APK e flashing

Ora siamo pronti per ricompilare l'APK modificato. Usa semplicemente APK Easy Tool per ricompilare SystemUI.apk e esegui il flashing in modalità di ripristino sul tuo dispositivo. È importante farlo in modalità di recupero, perché è necessario cancellare la cache di Dalvik, altrimenti i nuovi file smali che abbiamo aggiunto non verranno attivati.

Se tutto va bene, dovresti vedere la tua GIF animata come la tua nuova chiave home della barra di navigazione!

Articoli Interessanti