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 aplicaciones relacionadas:
- Cómo crear un tema manual en la interfaz de usuario del sistema Android
- Cómo descompilar y tematizar APKs de Android
- Cómo deodexar tus APK en ROM de stock
Requisitos:
- Un teléfono Android rooteado (¡Appuals tiene muchas guías raíz de Android!)
- Una herramienta de descompilación de APK (recomendamos APK herramienta fácil )
- Un buen editor de código como Bloc de notas++
Descompilando 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 Appuals para desodexar APK en este proceso.
El siguiente paso es descompilar SystemUI.apk, que requiere una guía por sí mismo si nunca lo ha hecho antes. Nunca he descompilado un APK antes.
agregando la Archivos SMALI
Ahora necesita agregar nuevos archivos smali: hay un paquete de archivos .smali ya modificados para exactamente lo que necesitamos hacer disponible AQUÍ . Específicamente, debe extraer el archivo “SelfAnimatingImageView.smali” del .zip y agregarlo a su APK descompilado en el directorio:
SystemUI.apksmalicomandroidmorningstar
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 su barra de navegación. Deberías usar un pegatina gif, como puedes encontrar en Giphy.com/pegatinas – Notarás que tienen fondos transparentes como un PNG, pero en realidad son GIF.
Una vez que guarde un GIF de pegatina que le guste, debe convertirlo en una serie de PNG. Esto se debe a que nuestra SystemUI modificada no ejecutará un archivo .gif nativo, sino que reproducirá PNG en orden secuencial. Entonces necesitamos dividir el .gif en PNG secuenciales, afortunadamente podemos hacerlo muy fácilmente con un convertidor en línea como División EZGIF .
Simplemente cargue su GIF en la herramienta Dividir EZGIF, elija “Imágenes de salida en formato PNG” en el menú desplegable Opciones de división y extraerá todos los marcos en orden secuencial. Luego puede descargar los marcos juntos en un archivo ZIP.
Ahora debe agregar los marcos PNG del GIF dividido a su “ dibujable-xxxDPI ” en su carpeta apk SystemUI descompilada. La carpeta que usará depende del DPI de su dispositivo, así que:
- MDPI = ~160 ppp
- HDPI = ~240 ppp
- XHDPI = ~320 ppp
- XXHDPI = ~480 ppp
- XXXHDPI = ~640 ppp
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 en su carpeta “resdrawable” dentro del APK descompilado.
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="https://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 volver a compilar SystemUI.apk, debemos colocar 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 HOME se puede encontrar en “layoutnavigation_bar.xml”, pero también se puede encontrar en “layouthome.xml”. Necesitas buscar esto, dependiendo de tu ROM.
Básicamente, está buscando cualquier archivo XML de diseño 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 hacen referencia al botón de inicio o similar. Lo que tenemos que hacer es ocultar esta tecla de INICIO, y coloque una nueva en su lugar que será del mismo tamaño, pero invisible, y luego nuestros marcos animados irán debajo de ella. Esto es bastante fácil, todo lo que necesitamos es un Disposición del marco 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 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 debería estar la tecla INICIO 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. Un poco de ensayo y error es necesario aquí.
recompilando el APK y flashearlo
Ahora estamos listos para volver a compilar el APK modificado. Simplemente use APK Easy Tool para volver a compilar SystemUI.apk y actualícelo en modo de recuperación en su dispositivo. Es importante hacer esto en el 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.
Leer siguiente
- ¿Cómo hacer una aplicación de Android para su sistema de hogar inteligente en Android Studio?
- Cómo establecer un GIF como fondo en Windows 10
- ¿Cómo usar la función de inserción de tecla si no está en su teclado?
- Cómo usar su teléfono o tableta Android como un monitor adicional para su PC con Windows