
¡Ya iba tocando dejar por aquí un nuevo post sobre desarrollo en Android!, esta vez voy a intentar explicar algo bastante sencillo pero al mismo tiempo muy útil y versátil en las aplicaciones: las opciones de menú dentro de cada pantalla, donde normalmente añadimos las pequeñas funcionalidades que no tienen que mostrarse siempre en pantalla pero que de vez en cuando usamos, lo explicaré en 4 sencillos pasos:
- Crear imágenes de icono (opcional)
- Crear elemento XML con las diferentes opciones de menú
- Añadir opciones al Activity deseado
- Añadir funcionalidad a cada una de las opciones de menú
1. Crear los iconos para cada opción de menú (opcional)
Si queremos que el tamaño de la imagen cambie según la resolución del dispositivo que ejecuta la aplicación deberemos generar distintos tamaños de cada imagen. En general las aplicaciones suelen tener imágenes para tres resoluciones como mínimo: HDPI (alta), MDPI (media) y LDPI (baja), a continuación os dejo una relación de las distintas resoluciones existentes para aplicaciones android. Debemos tener cada imagen para cada resolución dentro de la carpeta correspondiente en res: drawable-hdpi, drawable-mdpi o drawable-ldpi.
| Dando soporte a distintas resoluciones de pantalla (clic aquí para más info) |
2. Crear elemento XML que contiene las diferentes opciones de menú
El siguiente paso necesario es definir un medio desde el cual leamos las opciones de menú. Puede configurarse desde una base de datos, desde el propio código o (la parte más sencilla a mi parecer) desde un fichero XML dentro de la carpeta menu, en res.
Como costumbre, suelo nombrar a los ficheros XML que forman parte de un menú con el mismo nombre que el layout al que van a pertenecer y así tener mejor organizados los ficheros a la hora de reconocerlos, esto es muy aconsejable sobre todo si la aplicación va a tener una estructura de ficheros bastante amplias. Como en este caso el menú va a ir asociado al layout home, lo he nombrado home_menu.xml.
![]() |
| Estructura de ficheros del proyecto |
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/btConfig"
android:title="Configuración"
android:icon="@drawable/config">
</item>
<item
android:id="@+id/btInfo"
android:title="Acerca de"
android:icon="@drawable/info">
</item>
</menu>
3. Añadir las opciones de menú dentro del Activity deseado
Este paso es bastante sencillo, sólo debemos sobreescribir el método onCreateOptionsMenu dentro del Activity que implemente el menú e indicarle el documento XML que contiene dichas opciones.
// Añadiendo las opciones de menú
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.home_menu, menu);
return true;
}![]() |
| Vista final de la pantalla cuando se pulsa el botón MENÚ |
4. Dando funcionalidad a cada una de las opciones de menú
El código que muestra a continuación muestra un mensaje de texto diferente según que opción se pulsa, se deberá cambiar el contenido de cada case según la funcionalidad que queremos dar a la aplicación: Acceder a la base de datos para modificar algún registro, cambiar de Activity, etc.
// Añadiendo funcionalidad a las opciones de menú
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.btConfig:
Toast.makeText(getApplicationContext(), "Has pulsado Config",
Toast.LENGTH_SHORT).show();
return true;
case R.id.btInfo:
Toast.makeText(getApplicationContext(), "Has pulsado la opción
Info", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
SIGUE LEYENDO


