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

Algunas grandes mentes de la comunidad de Android han descubierto cómo modificar su barra de navegación para usar .gif animado como clave de inicio, ¡y Appuals tiene la guía para hacerlo!

Advertencia: Este es un proceso justo. Necesita descomprimir su SystemUI.apk, meterse con algunos archivos importantes y volver a armarlo. ¡Haga una copia de seguridad de su SystemUI.apk en caso de que algo salga mal!

Instrucciones de aplicación relacionadas:

  • Cómo manual la interfaz de usuario del sistema Android Theme
  • Cómo descomprimir los APK y el tema de Android
  • Cómo Deodex tus APK en Stock ROM

Requisitos:

  • Teléfono Android rooteado (¡Appuals tiene muchas guías de raíz de Android!)
  • Herramienta de descomposición de APK (nosotros recomendamos Herramienta APK fácil)
  • Buen editor de código como Bloc de notas ++

Descomprime tu SystemUI.apk

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

El siguiente paso es descomprimir SystemUI.apk, que requiere instrucciones por sí solo si nunca lo ha hecho antes; afortunadamente, Appuals tiene «Cómo usar el tema manual de la interfaz de usuario del sistema Android» con instrucciones de descompresión, así que siga leyendo si nunca lo ha hecho. descargó un APK antes.

Añadiendo un Archivos SMALI

Ahora necesita agregar nuevos archivos Smali: ya se ha modificado un paquete de archivos. Smali para hacer exactamente lo que tenemos que hacer. AQUÍ. Específicamente, debe extraer el archivo «SelfAnimatingImageView.smali» del .zip y agregarlo a su APK descompuesto en el directorio:

SystemUI.apksmalicomandroidmorningstar

Deberá crear estas carpetas si no existen.

Compartir un GIF en marcos

Ahora necesita obtener un .gif animado que le guste y desee usar como barra de navegación del botón de inicio. Debieras etiqueta engomada gif, como puedes seguir Giphy.com/stickers – notará que tienen fondos transparentes como PNG, pero en realidad son GIF.

Una vez que guarde una etiqueta GIF que desee, debe convertirla a un conjunto de PNG. Esto se debe a que nuestra SystemUI modificada en realidad no ejecutará un archivo .gif nativo, sino que reproducirá PNG en orden secuencial. Así que necesitamos dividir el .gif en PNG secuenciales, afortunadamente podemos hacer esto fácilmente con un convertidor en línea como EZGIF dividido.

Simplemente cargue su GIF en la herramienta EZGIF Split, seleccione “Salida de imágenes en formato PNG” en el menú desplegable Opciones de división y extraerá todos los fotogramas en orden secuencial. A continuación, puede descargar los marcos juntos en un archivo ZIP.

Ahora debe agregar los marcos PNG del GIF dividido a su «apropiado»dibujable-xxxDPI«Carpeta en su carpeta apk SystemUI descompuesta. La carpeta que usa depende del DPI de su dispositivo, así que:

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

Ahora necesitamos un archivo XML que le indique a su Android que use las imágenes para la animación y qué tan rápido puede recorrerlas. Regrese al ZIP que descargó anteriormente y tome el «frame_anim.xml», y cópielo en su carpeta «res drawable» dentro del APK descomprimido.

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

<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot="false"
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:duration="100" android:drawable="@drawable/frame_0" />
    <item android:duration="100" android:drawable="@drawable/frame_1" />
    <item android:duration="100" android:drawable="@drawable/frame_2" />
    <item android:duration="100" android:drawable="@drawable/frame_3" />
</animation-list>

Cada línea que comienza con

Y finalmente, antes de que podamos rediseñar el SystemUI.apk, necesitamos poner nuestra animación en la barra de navegación. Esto es un poco trivial, ya que editaremos el archivo XML de diseño. En la mayoría de las ROM estándar, el código que rige el software de la barra de navegación HOME se puede encontrar en «layout navigation_bar.xml», pero también se encuentra en «layout home.xml». Tienes que buscar sobre esto, dependiendo de tu ROM.

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

<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center"
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á que está en el archivo XML correcto cuando vea líneas que se refieren al baile_button o equivalente. Que tenemos que hacer ocultado esta tecla de INICIO, y reemplácela con una nueva que será del mismo tamaño, pero invisible, y luego nuestros cuadros animados irán debajo. Esto es bastante fácil, todo lo que tenemos que hacer es FrameLayout código.

<FrameLayout android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent">
    <com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center" android:layout_width="@dimen/navigation_key_width" android:layout_height="fill_parent" android:src="https://appuals.com/how-to-use-a-gif-as-your-android-navbar-home-key/@drawable/transparent" android:scaleType="center" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" />
    <com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="center" 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" />
    <com.android.systemui.morningstar.SelfAnimatingImageView android:layout_gravity="center" android:id="@+id/frame_animation" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/frame_anim" />
</FrameLayout>

Si examina este código, verá cómo hemos apilado tres cosas diferentes una encima de la otra. Pero cuando la aplicación se está ejecutando, no la verá; solo verá su GIF animado donde debería estar la tecla INICIO en la barra.

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

Refundiendo el APK y flashearlo

Ahora estamos listos para remodelar el APK modificado. Simplemente use la herramienta Easy APK para reiniciar SystemUI.apk y actualícelo en modo de recuperación en su dispositivo. Es importante hacer esto en modo de recuperación, porque tendrás que borrar la caché de Dalvik o los nuevos archivos pequeños que agregamos no se activarán.

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

Deja un comentario