Cómo usar un GIF como tecla de inicio de la barra de navegación de Android

Algunas mentes brillantes en la comunidad de Android descubrieron cómo modificar su barra de navegación para usar un .gif animado como su tecla de inicio, ¡y Appuals tiene la guía para hacerlo!

Advertencia: este es un proceso bastante complicado. Debe descompilar su SystemUI.apk, meterse con algunos archivos importantes y volver a compilarlo. Haga una copia de seguridad de su SystemUI.apk en caso de que algo salga mal.

Guías de manuales relacionadas:

  • Cómo tema manualmente la interfaz de usuario del sistema Android
  • Cómo descompilar y tema APK de Android
  • Cómo Desodexar tus APK en Stock ROM

Requisitos:

  • Un teléfono Android rooteado (¡Appuals tiene muchas guías raíz de Android!)
  • Una herramienta de descompilación de APK ( recomendamos APK Easy Tool)
  • Un buen editor de código como Notepad ++

Descompilar su SystemUI.apk

Lo primero que debe hacer es desodexar su SystemUI.apk: puede usar una herramienta como Tickle My Android para esto. Lea la guía de aplicaciones para desodexar APK en este proceso.

El siguiente paso es descompilar el SystemUI.apk, que requiere una guía por sí mismo si nunca lo ha hecho antes. Afortunadamente, Appuals tiene "Cómo tema manualmente la interfaz de usuario del sistema Android" con instrucciones de descompilación, así que lea eso si usted Nunca antes había descompilado un APK.

Agregar los archivos SMALI

Ahora necesita agregar nuevos archivos smali: hay un paquete de archivos .smali ya modificados para lo que necesitamos hacer disponible AQUÍ. Específicamente, debe extraer el archivo "SelfAnimatingImageView.smali" del archivo .zip y agregarlo a su APK descompilado en el directorio:

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

Deberá crear estas carpetas si no existen.

Dividir un GIF en marcos

Ahora necesita encontrar un .gif animado que le guste y quiera usar como botón de inicio de la barra de navegación. Debería usar un gif adhesivo, como puede encontrar en Giphy.com/stickers: notará que tienen fondos transparentes como PNG, pero en realidad son GIF.

Una vez que guarde una etiqueta GIF que le guste, debe convertirla en una serie de PNG. Esto se debe a que nuestra SystemUI modificada no ejecutará realmente un archivo .gif nativo, reproducirá PNG en orden secuencial. Por lo tanto, necesitamos dividir el .gif en PNG secuenciales, por suerte podemos hacerlo fácilmente con un convertidor en línea como EZGIF Split.

Simplemente cargue su GIF en la herramienta EZGIF Split, elija "Mostrar imágenes en formato PNG" en el menú desplegable Opciones de división, y extraerá todos los cuadros en orden secuencial. Luego puede descargar los marcos juntos en un archivo ZIP.

Ahora necesita agregar los marcos PNG del GIF dividido a su carpeta apropiada " drawable-xxxDPI " en su carpeta descompilada de apk SystemUI. La carpeta que usará depende del DPI de su dispositivo, por lo tanto:

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

Ahora necesitamos un archivo XML que indique a Android qué imágenes usar para la animación y qué tan rápido recorrerlas. Vuelva al ZIP que descargó anteriormente y tome el "frame_anim.xml", y cópielo a su carpeta "res \ drawable" dentro del APK descompilado.

Si abre frame_anim.xml en Notepad ++, debería verse así:

Cada línea que comienza con

Y finalmente, antes de que podamos recompilar SystemUI.apk, necesitamos poner nuestra animación en la barra de navegación. Esto es un poco complicado, ya que editaremos el archivo XML de diseño. En la mayoría de las ROM de stock, el código que controla la tecla programable de la barra de navegación de HOME se puede encontrar en "layout \ navigation_bar.xml", pero también se puede encontrar en "layout \ home.xml". Necesita buscar esto, dependiendo de su ROM.

Básicamente, está buscando cualquier archivo XML de diseño que contenga el código que se ve así:

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" /> 

Sabrás que estás en el archivo XML correcto cuando veas líneas que hacen referencia a home_button o similar. Lo que debemos hacer es ocultar esta tecla INICIO, y colocar una nueva en su lugar que sea del mismo tamaño, pero invisible, y luego nuestros cuadros animados irán debajo de ella. Esto es realmente bastante fácil, todo lo que necesitamos es un código FrameLayout .

Si examina este código, verá cómo tenemos tres cosas diferentes apiladas una encima de la otra. Pero cuando la aplicación se esté ejecutando, no la verá: todo lo que verá es su GIF animado donde la tecla INICIO debe estar en la barra de navegación.

Entonces, todo lo que necesita hacer es reemplazar la línea de código de la tecla programable INICIO con el código FrameLayout anterior, pero es posible que deba modificarlo para su ROM particular. Aquí es necesario un poco de prueba y error.

Recompilar el APK y flashearlo

Ahora estamos listos para recompilar el APK modificado. Simplemente use la herramienta fácil APK para recompilar SystemUI.apk y flashearlo en modo de recuperación en su dispositivo. Es importante hacer esto en modo de recuperación, porque necesita borrar el caché de Dalvik o de lo contrario los nuevos archivos pequeños que agregamos no se activarán.

Si todo va bien, ¡debería ver su GIF animado como su nueva tecla de inicio de la barra de navegación!

Artículos De Interés