Acceder

Ver la Versión Completa : [ TUTORIAL ] Centrar reloj en Nexus 4 (4.3)


trek85002010
23/08/13, 13:53:43
Agradecimientos a @equlog ya que sin él nos hubiese costado más.

Antes de hacer nada de esto, debemos tener claro como descompilar apks, eso es primordial y totalmente necesario. Podremos utilizar cualquier programa de "decompile" de apks, he usado apktool junto a Notepad++.

El archivo a descompilar es SystemUI.apk/res/layout/status_bar.xml

Espero que os guste :ok:

En las líneas 5 y 6 (el número de las líneas las digo en función al programa Notepad ++), debemos cambiar esto:

<ImageView android:id="@id/notification_lights_out" android:paddingBottom="2.0dip" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:paddingStart="6.0dip" />
<LinearLayout android:orientation="horizontal" android:id="@id/status_bar_contents" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingStart="6.0dip" android:paddingEnd="6.0dip">Por esto:

En la línea 5 debemos añadir android:paddingLeft="6.0dip" antes de android:paddingBottom="2.0dip"

Y borramos esto android:paddingStart="6.0dip"

En la línea 6, haremos esto:

Añadiremos android:paddingLeft="6.0dip" antes de android:layout_width="fill_parent"

Y borramos esto android:paddingStart="6.0dip" y esto android:paddingEnd="6.0dip"

Entre las líneas 10 y 11:

</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/system_icon_area" android:layout_width="wrap_content" android:layout_height="fill_parent">Añadimos las siguientes líneas:

<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
</LinearLayout>Una vez añadidas esas líneas, tendremos que ver algo tal que así.

<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/system_icon_area" android:layout_width="wrap_content" android:layout_height="fill_parent">
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:layout_width="wrap_content" android:layout_height="fill_parent" android:paddingStart="2.0dip">
<include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/signal_cluster_view" />
<ImageView android:id="@id/battery" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingStart="4.0dip" />
</LinearLayout>En la línea 14,15 y 16 veremos esto:

<LinearLayout android:orientation="horizontal" android:id="@id/system_icon_area" android:layout_width="wrap_content" android:layout_height="fill_parent">
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:layout_width="wrap_content" android:layout_height="fill_parent" android:paddingStart="2.0dip">En la 14 haremos los siguientes cambios:

Añadimos android:gravity="right|center" antes de android:orientation="horizontal"

Modificamos android:layout_width="wrap_content" por esto android:layout_width="0.0dip"

Añadimos después de android:layout_height="fill_parent" esto android:layout_weight="1.0"

En la línea 15:

Modificamos android:gravity="center_vertical" por android:gravity="right|center"

En la línea 16:

Modificamos android:gravity="center" por android:gravity="right|center"

Añadimos android:paddingLeft="2.0dip" antes de android:layout_width="wrap_content"

Eliminamos android:paddingStart="2.0dip"

En la línea 18:

<ImageView android:id="@id/battery" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingStart="4.0dip" />Añadimos android:paddingLeft="4.0dip" antes de android:layout_width="wrap_content"

Eliminamos android:paddingStart="4.0dip"

En la línea 20:

<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="start|center" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:paddingStart="6.0dip" />la eliminamos por completo

En la línea 22:

<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingStart="6.0dip">Añadimos android:paddingLeft="6.0dip" antes de android:animationCache="false"

Eliminamos esto android:paddingStart="6.0dip"

En la línea 23

<ImageSwitcher android:id="@id/tickerIcon" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:layout_marginEnd="4.0dip">Modificamos android:layout_marginEnd="4.0dip" por android:layout_marginRight="4.0dip"

En la línea 27:

<com.android.systemui.statusbar.phone.TickerView android:id="@id/tickerText" android:paddingTop="2.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0" android:paddingEnd="10.0dip">Añadimos android:paddingRight="10.0dip" antes de android:layout_width="0.0dip"

Elimina android:paddingEnd="10.0dip"

Siendo el resultado final:

<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.PhoneStatusBa rView android:orientation="vertical" android:id="@id/status_bar" android:background="@drawable/status_bar_background" android:focusable="true" android:fitsSystemWindows="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<ImageView android:id="@id/notification_lights_out" android:paddingLeft="6.0dip" android:paddingBottom="2.0dip" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" />
<LinearLayout android:orientation="horizontal" android:id="@id/status_bar_contents" android:paddingLeft="6.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent" >
<LinearLayout android:orientation="horizontal" android:id="@id/notification_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentStart="true" />
</LinearLayout>
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
</LinearLayout>
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/system_icon_area" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
<include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/signal_cluster_view" />
<ImageView android:id="@id/battery" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageSwitcher android:id="@id/tickerIcon" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:layout_marginRight="4.0dip">
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
</ImageSwitcher>
<com.android.systemui.statusbar.phone.TickerView android:id="@id/tickerText" android:paddingTop="2.0dip" android:paddingRight="10.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
</com.android.systemui.statusbar.phone.TickerView>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBa rView>Válido para 4.2 - 4.2.2 y 4.3 tanto en GNexus y Nexus 4

Fuente --> http://www.dev-puremod.es/showthread.php?tid=669

mbc596
23/08/13, 14:06:51
Muy grande trek!

trek85002010
23/08/13, 15:23:16
Espero que se quede con una chincheta, ya que mucha gente puede que le interesa, o ellos mismos se pueden hacer el mod.

turydios
23/08/13, 15:47:16
Muy buen curro :ok:

trek85002010
23/08/13, 16:35:03
Muy grande trek!

Gracias cracks





Muy buen curro :ok:

zWo
23/08/13, 20:33:29
Todo esto solo para el reloj centrado? Y los iconos de WiFi y cobertura a la izquierda en el siguiente capitulo? :)

trek85002010
23/08/13, 23:01:16
Todo esto solo para el reloj centrado? Y los iconos de WiFi y cobertura a la izquierda en el siguiente capitulo? :)

No, solo me interesa el reloj.

equlog
24/08/13, 05:05:40
Al final quedó de lujo :sly: me alegro que os sirviera mi ayuda. :)

klander
24/08/13, 10:44:03
Excelente tutorial!!!

gonzalvez12
24/08/13, 11:43:32
Si alguien montara un flasheable sería genial... Jeje yo lo dejo caer.

Gracias!

klander
24/08/13, 11:44:49
Si alguien montara un flasheable sería genial... Jeje yo lo dejo caer.

Gracias!

Cuando lo centre yo lo hago,pero vamos.....

klander
24/08/13, 18:13:57
Funciona en AOSP!!!

gonzalvez12
24/08/13, 18:31:32
Cuando lo centre yo lo hago,pero vamos.....

A mi me encantaría aprender a hacer ese tipo de cosas. Creo que son útiles y mucha gente las utilizaría.

Pero no se cómo aprender. La respuesta es fácil: "pues lee en XDA". XDA es enorme y me pierdo.

En fin, saludos y gracias.

mbc596
24/08/13, 18:55:03
A mi me encantaría aprender a hacer ese tipo de cosas. Creo que son útiles y mucha gente las utilizaría.

Pero no se cómo aprender. La respuesta es fácil: "pues lee en XDA". XDA es enorme y me pierdo.

En fin, saludos y gracias.

Si quieres aprender a cocinar para android y en español pasate por el foro de puremod: http://www.dev-puremod.es/forumdisplay.php?fid=47 (este es el apartado de cocina)

gonzalvez12
24/08/13, 19:22:51
Si quieres aprender a cocinar para android y en español pasate por el foro de puremod: http://www.dev-puremod.es/forumdisplay.php?fid=47 (este es el apartado de cocina)

Gracias, me lo guardo para cuando vuelva de vacaciones.

La verdad es que si que me apetece aprender cosas sencillitas pero útiles. Será mi forma se agradecer y devolver a este foro todo lo que me ha ayudado (y salvado la vida en más de una ocasión xD).

Saludos

trek85002010
24/08/13, 21:45:23
Funciona en AOSP!!!

Si tienes el flasheable y quieres subirlo, pasamelo y lo modifico en el primer hilo.

Hasta el Lunes, no puedo empezar ha hacer cosas.

klander
24/08/13, 21:57:37
A mi me encantaría aprender a hacer ese tipo de cosas. Creo que son útiles y mucha gente las utilizaría.

Pero no se cómo aprender. La respuesta es fácil: "pues lee en XDA". XDA es enorme y me pierdo.

En fin, saludos y gracias.

Yo he tenido que leer mucho desde que empezé al principio de salir el Galaxy S2.A dia de hoy sigo leyendo a diario y aprendiendo.Solo aprendes equivocandote,pero como todo tienes que empezar de cero y comprender el porque de muchas de las cosas de android,entrar por el tejado no te sirve de nada ;-)

gonzalvez12
24/08/13, 22:28:45
Yo he tenido que leer mucho desde que empezé al principio de salir el Galaxy S2.A dia de hoy sigo leyendo a diario y aprendiendo.Solo aprendes equivocandote,pero como todo tienes que empezar de cero y comprender el porque de muchas de las cosas de android,entrar por el tejado no te sirve de nada ;-)

Entiendo lo que dices. No es que quiera empezar la casa por el tejado, sería absurdo. Mi problema es que no encuentro los cimientos... No se por donde empezar.

Si pudieras ilustrarme...

Gracias.

klander
24/08/13, 22:59:36
Entiendo lo que dices. No es que quiera empezar la casa por el tejado, sería absurdo. Mi problema es que no encuentro los cimientos... No se por donde empezar.

Si pudieras ilustrarme...

Gracias.

En cuanto pueda voy a hacer un tutorial y me voy a retirar. Que ya va siendo hora!!!

gonzalvez12
24/08/13, 23:30:48
En cuanto pueda voy a hacer un tutorial y me voy a retirar. Que ya va siendo hora!!!

¿Un tuto sobre qué?

Eso es lo que me preocupa, que los sabios os vais retirando y no llegan recambios.

Ojalá yo pueda ser uno. Ganas no me faltan.

Saludos

klander
24/08/13, 23:32:29
¿Un tuto sobre qué?

Eso es lo que me preocupa, que los sabios os vais retirando y no llegan recambios.

Ojalá yo pueda ser uno. Ganas no me faltan.

Saludos

Un tuto de por donde empezar e ir escalando.

gonzalvez12
24/08/13, 23:37:25
Un tuto de por donde empezar e ir escalando.

Eso sería MA-RA-VI-LLO-SO.

Es necesaria una guía, algo que marque los primeros pasos para los que queremos empezar.

Además es que es bueno para todos. Cuanta más gente controle de esto, menos dudas tontas habrá, mejor funcionará el foro y habrá más desarrollo sin que dependa siempre de los mismos.

Muchas gracias.

xevipats
25/08/13, 11:06:49
Funciona en AOSP!!!

En tu rom basada en Psx funciona capi?

klander
25/08/13, 11:11:06
En tu rom basada en Psx funciona capi?

No lo he probado en esa,lo he probado en mi ultima compilación AOSP JSS15Q

http://img.tapatalk.com/d/13/08/25/uve9yja2.jpg

xevipats
25/08/13, 11:19:05
No lo he probado en esa,lo he probado en mi ultima compilación AOSP JSS15Q

http://img.tapatalk.com/d/13/08/25/uve9yja2.jpg

A ver si a la tarde puedo i intento hacerlo, porque no se ni como empezar, muchas gracias!:ok:

klander
25/08/13, 11:26:56
A ver si a la tarde puedo i intento hacerlo, porque no se ni como empezar, muchas gracias!:ok:

Luego lo hago yo en la otra ROM y subo un flasheable

xevipats
25/08/13, 11:44:57
Luego lo hago yo en la otra ROM y subo un flasheable

Ok capi muchas gracias, la verdad que viendo estos tutos uno se da cuenta de lo complicado que es esto y el mérito que tenéis los cocineros que os lo currais cada día y de forma desinteresada, muchas gracias de nuevo.

trek85002010
25/08/13, 17:28:00
Ok capi muchas gracias, la verdad que viendo estos tutos uno se da cuenta de lo complicado que es qesto y el mérito que tenéis los cocineros que os lo currais cada día y de forma desinteresada, muchas gracias de nuevo.

Es un hobby que se tiene. Siempre intentamos ayudarnos entre todos.

trek85002010
05/09/13, 19:00:58
Actualizado el primer post.

elektra
11/09/13, 18:12:09
Luego lo hago yo en la otra ROM y subo un flasheable

klander, como va ese flasheable?.
gracias.

DoctorTesla
13/01/14, 22:55:08
Hola amigos!! Solo comentar que ahora hay una opcion en el GravityBox para centrar el reloj en un click ( para vagos y super principiantes!) X-D
Muy buen tuto de todas formas :ok: Thx bro