Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Competencia específica: desarrolla una aplicación Android de estructura básica que calcule el índice de masa corporal
de una persona.
El índice de masa corporal (IMC) es una medida de asociación entre el peso y la talla de un individuo. Se calcula de
acuerdo a la siguiente fórmula:
𝑝𝑒𝑠𝑜
𝐼𝑀𝐶 =
𝑒𝑠𝑡𝑎𝑡𝑢𝑟𝑎2
Donde el peso se expresa en kilogramos y la estatura en metros (el cuadrado de la estatura se expresará en metros
cuadrados).
En los adultos, el IMC se ha utilizado para evaluar el estado nutricional, de acuerdo con los valores propuestos por la
Organización Mundial de la Salud (OMS).
Escriba una aplicación Android que calcule el índice de masa corporal (IMC), a partir del peso en kilogramos y la estatura
en metros de una persona adulta e indique su estado nutricional.
Procedimiento
1) Ejecute Android Studio. Inicie un nuevo proyecto con los siguientes datos:
Nombre de la aplicación: Imc
Dominio de la organización: Use el dominio de su organización. O construya un dominio
utilizando su nombre y primer apellido (por ejemplo,
android.jorgechuc.com, este será el dominio mencionado durante la
práctica. Use el dominio registrado en la creación del proyecto)
Plataforma: Phone and Tablet
SDK mínimo: Seleccione el API acordado para el curso (por ejemplo, API 16:
Android 4.1, Jelly Bean)
Activity a utilizar: Empty Activity
Nombre de la Activity MainActivity
Nombre del layout activity_main
Ing. Jorge Luis Chuc López
2
Definir el layout de la Activity
2) Si no está disponible para editar, abra el layout activity_main.xml. Cámbiese al modo Text de edición del layout y
modifíquelo para cambiar el elemento raíz de RelativeLayout (o
android.support.constraint.ConstraintLayout, dependiendo de la versión de Android Studio que tenga
instalada) a LinearLayout, para que quede como el siguiente código xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.jorgechuc.android.imc.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"/>
</LinearLayout>
3) Elimine el elemento TextView que aparece en el archivo activity_main.xml.
4) Agregue los componentes que se señalan en la siguiente jerarquía:
Widget Nivel Atributo Valor
TextView 1 android:layout_width wrap_content
android:layout_height wrap_content
android:text Proporcione el peso en kilogramos:
EditText 1 android:layout_width match_parent
android:layout_height wrap_content
TextView 1 android:layout_width wrap_content
android:layout_height wrap_content
android:text Proporcione la estatura en metros:
EditText 1 android:layout_width match_parent
android:layout_height wrap_content
Button 1 android:layout_width wrap_content
android:layout_height wrap_content
android:text Calcular
Button 1 android:layout_width wrap_content
android:layout_height wrap_content
android:text Limpiar
TextView 1 android:layout_width wrap_content
android:layout_height wrap_content
android:text El Indice de Masa Corporal (IMC) es
TextView 1 android:layout_width wrap_content
android:layout_height wrap_content
android:text 0.0
5) El código XML deberá verse como lo siguiente (Intenta hacerlo primero, no lo copies):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.jorgechuc.android.imc.MainActivity">
<TextView
Ing. Jorge Luis Chuc López
3
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Proporcione el peso:"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Proporcione la estatura:"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calcular"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Limpiar"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="El Índice de Masa Corporal (IMC) es:"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.0"/>
</LinearLayout>
6) Vea el Preview del layout y será similar a la siguiente gráfica:
7) Modifique el layout para que los dos botones queden dentro de un LinearLayout horizontal, de tal manera que la
jerarquía deberá quedar como se muestra a continuación:
Widget Nivel Atributo Valor
TextView 1 android:layout_width wrap_content
android:layout_height wrap_content
android:text Proporcione el peso en kilogramos:
EditText 1 android:layout_width match_parent
android:layout_height wrap_content
TextView 1 android:layout_width wrap_content
android:layout_height wrap_content
android:text Proporcione la estatura en metros:
EditText 1 android:layout_width match_parent
android:layout_height wrap_content
LinearLayout 1 android:layout_width match_parent
android:layout_height wrap_content
android:orientation Horizontal
Button 2 android:layout_width wrap_content
android:layout_height wrap_content
android:text Calcular
Button 2 android:layout_width wrap_content
android:layout_height wrap_content
android:text Limpiar
TextView 1 android:layout_width wrap_content
android:layout_height wrap_content
android:text El Indice de Masa Corporal (IMC) es
TextView 1 android:layout_width wrap_content
android:layout_height wrap_content
android:text 0.0
8) El código XML deberá verse como lo siguiente (de nuevo, intenta hacerlo primero, no lo copies):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
Ing. Jorge Luis Chuc López
5
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.jorgechuc.android.imc.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Proporcione el peso:"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Proporcione la estatura:"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Calcular"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Limpiar"/>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="El Índice de Masa Corporal (IMC) es:"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.0"/>
</LinearLayout>
9) Vea el Preview del layout y será similar a la siguiente gráfica:
10) Ejecute la aplicación. Notará que no hay respuesta a la interacción del usuario.
11) Abra Git Bash y cambie su ubicación del directorio de trabajo a la carpeta ~/AndroidStudioProjects. Posteriormente
cree un repositorio Git para el proyecto. Esto puede hacerlo usando los comandos siguientes (se asume que el
directorio de trabajo es la carpeta Home del usuario):
12) $ cd AndroidStudioProjects
13) $ cd Imc
14) $ echo “# Aplicación que calcula el Indice de Masa Corporal.” >> README.md
15) Abra su navegador de internet y vaya a la dirección gitignore.io
16) En el campo de búsqueda escriba y selecciones los siguientes elementos dándole Enter a cada uno de ellos para
que sean agregados: Windows, Java, Android, Intellij. Posteriormente haga clic en el botón Create. El Navegador
mostrará el texto generado. Haga clic derecho en cualquier parte de la página mostrada y en el menú de contexto
que aparece seleccione la opción Guardar como… Aparecerá el diálogo para guardar el archivo. Asigne el nombre
gitignore al archivo, cuyo tipo será Documento de Texto. Haga clic en el botón Guardar. El archivo se guardará en
la carpeta seleccionada, con el nombre gitignore.txt.
17) Con ayuda del Explorador de Archivos de Windows, mueva este archivo a la carpeta de su proyecto.
18) Usando Git Bash cambie el nombre del archivo gitignore a .gitignore, usando los siguientes comandos:
$ mv gitignore.txt .gitignore
19) Cree un repositorio Git para el proyecto, usando el comando:
$ git init
$ git status
20) Agregue al repositorio los archivos del proyecto para darle seguimiento con el control de versiones. Utilice los
siguientes comandos:
$ git add .
$ git status
21) El comando anterior hizo que los archivos del proyecto, que están en su directorio de trabajo, sean colocados en el
área Stage de Git.
22) Ahora realice un commit para mover estos archivos del área Stage y sean convertidos en objetos commit, creando
una nueva versión del proyecto. Utilice los siguientes comandos
$ git commit –m “Imc: Versión inicial del proyecto. Sólo muestra la interfaz de usuario y no
incluye manejo de eventos.”
$ git status
mBotonLimpiar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCampoPeso.setText("");
mCampoEstatura.setText("");
mEtiquetaImc.setText("0.0");
}
});
28) Ejecute la aplicación. Haga pruebas con diferentes casos de prueba.
Agregar los recursos de cadena
29) Abra el archivo string.xml que se encuentra en la carpeta res/values. Agregue los siguientes recursos de cadena:
Nombre del recurso de cadena Texto
texto_etiqueta_peso Proporcione el peso en kilogramos:
texto_etiqueta_estatura Proporcione la estatura en metros:
texto_boton_calcular Calcular
texto_boton_limpiar Limpiar
texto_etiqueta_resultado El Indice de Masa Corporal (IMC) es
Hacer que los widgets del layout se refieran a los recursos de cadena
30) Vaya al archivo activity_main.xml y modifique los atributos android:text para que su valor sea tomado de los
recursos de cadena, de la siguiente manera:
Widget Nuevo valor del atributo text
TextView @string/texto_etiqueta_peso
TextView @string/texto_etiqueta_estatura
Button @string/texto_boton_calcular
Ing. Jorge Luis Chuc López
8
Button @string/texto_boton_limpiar
TextView @string/texto_etiqueta_resultado
31) En Git Bash emita los siguientes comandos y analice el resultado de cada uno de ellos:
$ git status
$ git add .
$ git status
$ git commit –am “Imc: Primer versión funcional del proyecto. Incluye manejo de eventos.”
$ git status
$ git log
32) Ejecute la aplicación. Haga pruebas con diferentes casos de prueba.
33) Inicie sesión en GitHub y cree un repositorio remoto para su proyecto de nombre imc.
34) Vincule su proyecto con el repositorio remoto en GitHub tal y como lo menciona el documento para entregar los
proyectos de programación en GitHub.
35) Suba su proyecto hacia el repositorio remoto en GitHub.
36) Elabore el informe de la práctica de laboratorio.
Producto a entregar
Evaluación
Las instrucciones y los criterios de evaluación constituyen un apoyo para elaborar el contenido básico esperado. El
producto de esta actividad debe reflejar el trabajo de análisis del alumno.
Entrega
Fecha y hora de entrega: El indicado en la plataforma del curso.
Modo de entrega principal: El indicado por el profesor.
Modo de entrega alternativo: Ninguno.
Puntualidad: No hay prórrogas.