PDA

Ver la Versión Completa : [ TUTORIAL ] Mod_SistemUI 5_Botones barra navegación


Jechus
10/11/14, 17:19:38
Añadir los botones de "menu" y "apagado de pantalla"(con pulsacion larga se accede al menu de apagado)

Decomplilamos SystemUI.apk y nos dirigimos a:

res/values/strings.xml

y añadimos esta linea

<string name="accessibility_lock">Lock</string>
Ahora nos dirigimos a:

res/values/public.xml

Añadimos estas lineas en el grupo "drawable"..al final

<public type="drawable" name="ic_sysbar_lock_land" id="0x7f0201ac" />
<public type="drawable" name="ic_sysbar_lock" id="0x7f0201ad" />

Añadimos estas lineas en el grupo "id" ...al final

<public type="id" name="lock" id="0x7f0800a7" />
<public type="id" name="newmenu" id="0x7f0800a8" />

Ahora nos dirigimos a:

res/values/ids.xml

Añadimos estas lineas

<item type="id" name="lock">false</item>
<item type="id" name="newmenu">false</item>

Ahora nos dirigimos a.

res/drawable-xxhdpi

Añadimos los png necesarios

_ ic_sysbar_lock.png

- ic_sysbar_lock_land


------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
Ahora nos dirigimos a:

res/layout/navigation_bar.xml

Añadimos las lineas necesarias

(lineas:9/10/13/14/40/41/44/45/)
añado el archivo modificado en adjuntos (decompilado)

<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.NavigationBar View android:background="@drawable/system_bar_background" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<FrameLayout android:id="@id/rot0" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="horizontal" android:id="@id/nav_buttons" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent" android:animateLayoutChanges="true">
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/back" android:layout_width="70.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_back" android:layout_weight="0.0" android:contentDescription="@string/accessibility_back" systemui:keyCode="4" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/newmenu" android:layout_width="70.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_menu" android:layout_weight="0.0" android:contentDescription="@string/accessibility_menu" systemui:keyCode="82" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
<View android:visibility="invisible" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="0.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/home" android:layout_width="70.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_home" android:layout_weight="0.0" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" systemui:keyRepeat="false" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/lock" android:layout_width="70.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lock" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_lock" systemui:keyCode="26" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/recent_apps" android:layout_width="70.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_recent" android:layout_weight="0.0" android:contentDescription="@string/accessibility_recent" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/menu" android:visibility="invisible" android:layout_width="0.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_menu" android:layout_weight="0.0" android:contentDescription="@string/accessibility_menu" systemui:keyCode="82" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/lights_out" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageView android:layout_width="80.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0.0" android:layout_marginStart="@dimen/navigation_key_outer_margin_lights_out" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<ImageView android:layout_width="80.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<ImageView android:layout_width="80.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0.0" android:layout_marginEnd="@dimen/navigation_key_outer_margin_lights_out" />
</LinearLayout>
<FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.KeyButtonVie w android:layout_gravity="center" android:id="@id/search_light" android:visibility="gone" android:layout_width="80.0dip" android:layout_height="fill_parent" android:src="@drawable/search_light" android:scaleType="center" android:contentDescription="@string/accessibility_search_light" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:layout_gravity="right|center" android:id="@id/camera_button" android:visibility="gone" android:layout_width="80.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_camera" android:scaleType="center" android:contentDescription="@string/accessibility_camera_button" />
</FrameLayout>
<com.android.systemui.statusbar.policy.DeadZone android:layout_gravity="top" android:id="@id/deadzone" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:minSize="@dimen/navigation_bar_deadzone_size" systemui:maxSize="@dimen/navigation_bar_deadzone_size_max" systemui:holdTime="@integer/navigation_bar_deadzone_hold" systemui:decayTime="@integer/navigation_bar_deadzone_decay" systemui:orientation="horizontal" />
<ImageView android:layout_gravity="bottom|left|center" android:id="@id/rounded_corner_ll" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/rounded_corner_ll" />
<ImageView android:layout_gravity="bottom|right|center" android:id="@id/rounded_corner_lr" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/rounded_corner_lr" />
</FrameLayout>
<FrameLayout android:id="@id/rot90" android:paddingTop="0.0dip" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical" android:id="@id/nav_buttons" android:clipChildren="false" android:clipToPadding="false" android:layout_width="fill_parent" android:layout_height="fill_parent" android:animateLayoutChanges="true">
<View android:visibility="invisible" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/recent_apps" android:layout_width="fill_parent" android:layout_height="70.0dip" android:src="@drawable/ic_sysbar_recent_land" android:layout_weight="0.0" android:contentDescription="@string/accessibility_recent" systemui:glowBackground="@drawable/ic_sysbar_highlight_land" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/lock" android:layout_width="fill_parent" android:layout_height="70.0dip" android:src="@drawable/ic_sysbar_lock" android:scaleType="center" android:layout_weight="0.0" android:contentDescription="@string/accessibility_lock" systemui:keyCode="26" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/home" android:layout_width="fill_parent" android:layout_height="70.0dip" android:src="@drawable/ic_sysbar_home_land" android:layout_weight="0.0" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" systemui:keyRepeat="false" systemui:glowBackground="@drawable/ic_sysbar_highlight_land" />
<View android:visibility="invisible" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/newmenu" android:layout_width="fill_parent" android:layout_height="70.0dip" android:src="@drawable/ic_sysbar_menu_land" android:layout_weight="0.0" android:contentDescription="@string/accessibility_menu" systemui:keyCode="82" systemui:glowBackground="@drawable/ic_sysbar_highlight_land" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/back" android:layout_width="fill_parent" android:layout_height="70.0dip" android:src="@drawable/ic_sysbar_back_land" android:layout_weight="0.0" android:contentDescription="@string/accessibility_back" systemui:keyCode="4" systemui:glowBackground="@drawable/ic_sysbar_highlight_land" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<com.android.systemui.statusbar.policy.KeyButtonVie w android:id="@id/menu" android:visibility="invisible" android:layout_width="0.0dip" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_menu" android:layout_weight="0.0" android:contentDescription="@string/accessibility_menu" systemui:keyCode="82" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
</LinearLayout>
<LinearLayout android:orientation="vertical" android:id="@id/lights_out" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageView android:layout_width="fill_parent" android:layout_height="80.0dip" android:layout_marginTop="@dimen/navigation_key_outer_margin_lights_out" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0.0" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<ImageView android:layout_width="fill_parent" android:layout_height="80.0dip" android:src="@drawable/ic_sysbar_lights_out_dot_large" android:scaleType="center" android:layout_weight="0.0" />
<View android:visibility="invisible" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1.0" />
<ImageView android:layout_width="fill_parent" android:layout_height="80.0dip" android:layout_marginBottom="@dimen/navigation_key_outer_margin_lights_out" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" android:layout_weight="0.0" />
</LinearLayout>
<com.android.systemui.statusbar.policy.KeyButtonVie w android:layout_gravity="center_vertical" android:id="@id/search_light" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="80.0dip" android:src="@drawable/search_light_land" android:scaleType="center" android:contentDescription="@string/accessibility_search_light" />
<com.android.systemui.statusbar.policy.DeadZone android:layout_gravity="top" android:id="@id/deadzone" android:layout_width="fill_parent" android:layout_height="fill_parent" systemui:minSize="@dimen/navigation_bar_deadzone_size" systemui:maxSize="@dimen/navigation_bar_deadzone_size_max" systemui:holdTime="@integer/navigation_bar_deadzone_hold" systemui:decayTime="@integer/navigation_bar_deadzone_decay" systemui:orientation="vertical" />
</FrameLayout>
<View android:id="@id/rot270" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent" />
</com.android.systemui.statusbar.phone.NavigationBar View>

Compilamos

Jechus
10/11/14, 17:20:26
este para esplicaciones si son necesarias

como añadir la id en res/values/public.xml
voy a poner este ejemplo :


"public.xml" se divide en varios grupos(attr/drawable/string/.......)
cada grupo lleva una numeracion "ID" y si añadimos una linea a un grupo, esa linea tiene que tener un Id correlativo a el ultimo de ese grupo
la ultima linea del gruppo "drawable" es:

Como observamos la numeracion acaba en 0x7f0201ab a si que la siguiente linea que añadamos debe ser 0x7f0201ac
--------------------------------------------------------------------------------------------------------------------------------------------------------
Como buscamos la ultima linea?....yo uso el buscador del notepad++(el icono con el prismatico)y voy buscando hasta que al añadir una numeracion no encuentra nada.
.................................................. .................................................. .................................................. ............................................
Como funciona la numeracion ID
Cada grupo tiene un inicio diferente ....ejemplo:
"attr" 0x7f010000
"drawable" 0x7f020000
"mipmap" 0x7f030000

y asi todos

las numeraciones empiezan en "0" y van hasta el "9"
al llegar a el "9"salta a la"a"
ejemplo: 0x7f010009 el siguiente es 0x7f01000a, 0x7f01000b...hasta la f
0x7f01000f.

ahora seguira correlativo hasta la "f"...al llegar a la "f" el último número vuelve a saltar a el "0" y el penúltimo corre segun le corresponda(si es número o letra o le corresponde saltar de uno a otro).
0x7f010010
Tener en cuenta que siempre salta del nueve a la letra "a" y de la "f" a el cero ....si la Id es 0x7f01009a el siguiente seria 0x7f01009b..0x7f01009c..hasta 0x7f01009f y salta a?
0x7f0100a0

ikaos
10/11/14, 18:07:33
Movemos a temas...
Un saludo

agustialfara
14/11/14, 17:42:32
Mañana lo pruebo, pero ya para modificar el tamaño? O sea, hacer los botones más pequeños. Gracias de antemano. Buen trabajo!

xxKirianxx
15/11/14, 10:58:21
Buen tuto. Gracias por el aporte :D