Een GIF gebruiken als uw Android Navbar Home Key

Sommige briljante geesten in de Android-community hebben ontdekt hoe je je navigatiebalk kunt wijzigen om een ​​geanimeerde .gif als je thuissleutel te gebruiken, en Appuals heeft de gids om het te doen!

Waarschuwing: dit is een redelijk ingewikkeld proces. Je moet je SystemUI.apk decompileren, een paar belangrijke bestanden knoeien en opnieuw samen compileren. Maak een back-up van uw SystemUI.apk voor het geval er iets misgaat!

Gerelateerde Appuals-handleidingen:

  • Hoe u de Android-systeem-UI handmatig kunt themaeren
  • Hoe Android APK's te decompileren en te themaeren
  • Hoe u uw APK's op Stock ROM's Deodex

Vereisten:

  • Een geroote Android-telefoon (Appuals heeft veel Android-rootgidsen!)
  • Een APK-decompilatietool ( we raden APK Easy Tool aan)
  • Een goede code-editor zoals Notepad ++

Uw SystemUI.apk decompileren

Het eerste wat u hoeft te doen is deodex van uw SystemUI.apk - u kunt hiervoor een tool zoals Tickle My Android gebruiken. Lees de Appuals-handleiding voor het desodexen van APK's over dit proces.

De volgende stap is het decompileren van de SystemUI.apk, die op zichzelf een gids vereist als je het nog nooit eerder hebt gedaan - gelukkig heeft Appuals "Hoe de Android UI van het systeem handmatig in te delen" met instructies voor het decompileren, dus lees dat als je heb nog nooit eerder een APK gedecompileerd.

De SMALI-bestanden toevoegen

Nu moet je nieuwe smali-bestanden toevoegen - er is een pakket met reeds gemodificeerde .smali-bestanden voor precies wat we HIER moeten doen. In het bijzonder moet u het bestand "SelfAnimatingImageView.smali" uit de .zip halen en toevoegen aan uw gedecompileerde APK in de map:

 SystemUI.apk \ smali \ com \ android \ morningstar \ 

U moet deze mappen maken als ze niet bestaan.

Een GIF splitsen in frames

Nu moet je een geanimeerde .gif vinden die je leuk vindt en die je wilt gebruiken als de startknop van je navigatiebalk. Je zou een sticker-gif moeten gebruiken , zoals je kunt vinden op Giphy.com/stickers - je zult merken dat ze transparante achtergronden hebben zoals een PNG, maar het zijn in feite GIF's.

Nadat je een GIF-sticker hebt opgeslagen die je leuk vindt, moet je deze converteren naar een reeks PNG's. Dit komt omdat onze gemodificeerde SystemUI geen native .gif-bestand uitvoert, maar PNG's in opeenvolgende volgorde afspeelt. Dus moeten we de .gif opsplitsen in opeenvolgende PNG's, gelukkig kunnen we dit heel gemakkelijk doen met een online converter zoals EZGIF Split.

Upload eenvoudig uw GIF naar de EZGIF Split-tool, kies "Afbeeldingen uitvoeren in PNG-indeling" in het vervolgkeuzemenu Split-opties en het zal alle frames in opeenvolgende volgorde extraheren. Vervolgens kunt u de frames samen downloaden in een ZIP-bestand.

Nu moet u de PNG-frames van de gesplitste GIF toevoegen aan de juiste map " drawable-xxxDPI " in uw gedecompileerde map SystemUI apk. De map die u gaat gebruiken, is afhankelijk van de DPI van uw apparaat, dus:

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

Nu hebben we een XML-bestand nodig dat Android instrueert welke afbeeldingen moeten worden gebruikt voor de animatie en hoe snel deze kunnen worden doorlopen. Ga terug naar de ZIP die je eerder hebt gedownload en pak de "frame_anim.xml" en kopieer deze naar je map "res \ drawable" in de gedecompileerde APK.

Als u frame_anim.xml opent in Kladblok ++, zou het er als volgt moeten uitzien:

Elke regel begint met

En tot slot, voordat we de SystemUI.apk opnieuw kunnen compileren, moeten we onze animatie op de navigatiebalk plaatsen. Dit is een beetje lastig, omdat we het XML-lay-outbestand zullen bewerken. In de meeste stock-ROM's vindt u de code die de softkey HOME-navigatiebalk bestuurt in "layout \ navigation_bar.xml", maar deze is mogelijk ook te vinden in "layout \ home.xml". Je moet hier op jagen, afhankelijk van je ROM.

Kortom, u zoekt welk XML-bestand met de lay-out de code bevat die er als volgt uitziet:

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

Je weet dat je je in het juiste XML-bestand bevindt als je lijnen ziet die verwijzen naar de home_button of iets dergelijks. Wat we moeten doen, is deze HOME-sleutel verbergen en een nieuwe op zijn plaats zetten die even groot is, maar onzichtbaar, en dan zullen onze geanimeerde frames eronder gaan. Dit is eigenlijk vrij eenvoudig, we hebben alleen een FrameLayout- code nodig .

Als je deze code bekijkt, zie je hoe we drie verschillende dingen op elkaar hebben gestapeld. Maar wanneer de app actief is, zie je hem niet - alles wat je ziet is je geanimeerde GIF waar de HOME-toets op de navigatiebalk moet staan.

Het enige dat u hoeft te doen, is de codefunctie van de HOME-softkey vervangen door de bovenstaande FrameLayout-code, maar mogelijk moet u deze aanpassen voor uw specifieke ROM. Een beetje vallen en opstaan ​​is hier nodig.

De APK opnieuw compileren en flashen

Nu zijn we klaar om de gemodificeerde APK opnieuw te compileren. Gebruik eenvoudig de APK Easy Tool om SystemUI.apk opnieuw te compileren en flash het in de herstelmodus op uw apparaat. Het is belangrijk om dit in de herstelmodus te doen, omdat je de Dalvik-cache moet wissen, anders worden de nieuwe smali-bestanden die we hebben toegevoegd niet geactiveerd.

Als alles goed gaat, zou je je geanimeerde GIF moeten zien als je nieuwe Navbar-basissleutel!

Interessante Artikelen