Está en la página 1de 10

HERRAMIENTAS DE PROGRAMACIÓN MÓVIL

SEMANA 5

Felipe Espinoza U.
01-05-2023
Técnica Nivel Superior en Análisis y Programación.
DESARROLLO
Imagina que has sido contratado por IACC, para el desarrollo de una aplicación móvil, con el
fin de premiar a los mejores alumnos de las distintas carreras, para lo cual en necesario que
consideres los requerimientos descritos a continuación:

● El nombre de la aplicación debe llevar tu nombre y apellido como nombre del proyecto.
● En la pantalla principal, incorpora un menú o 3 botones que deberán tener las
siguientes funcionalidades respectivamente:
1. Una opción para capturar una foto (utilizando la cámara) del alumno destacado.
2. Una opción en la cual se utilice listview con los alumnos destacados, deberá
contar con la foto y nombre, al presionar el primero del ranking se debe
reproducir una canción y/o sonido.
3. Una opción donde se exponga un gráfico con las 4 carreras con más alumnos.

En base a los requerimientos planteados, completa las actividades:

1. Utiliza elementos multimedia como audio y explica el funcionamiento en tu aplicación.

Para realizar esta tarea, vamos a utilizar un botón llamado "Alumnos" que nos llevará a una lista
que muestra el ranking de los estudiantes. Si hacemos clic en el primer estudiante de la lista, se
reproducirán aplausos, como se especificó en la solicitud de la funcionalidad.
Para reproducir los aplausos, vamos a utilizar la funcionalidad de "MediaPlayer", que nos permite
reproducir audio o sonidos cuando hacemos clic en un botón. Además, se ha agregado la
funcionalidad de seleccionar una imagen, que se mostrará en pantalla completa.

2. Almacena la foto capturada y explica el funcionamiento en tu aplicación.

Esta característica tiene tres botones disponibles. El primero se utiliza para abrir la cámara y
tomar una foto. Después de tomar la foto, volveremos al menú principal, donde podremos ver la
imagen que acabamos de capturar. Además, la foto se guardará automáticamente en los
archivos del sistema.

3. Utiliza gráficos y explica en detalle el funcionamiento en tu aplicación.


En cuanto a la función de los gráficos, se ha utilizado un botón para acceder a la lista de las carreras con
las mejores matrículas. La visualización de esta información se ha realizado mediante un gráfico
horizontal.

Código utilizado completo y explicado:

Crear un nuevo proyecto con una Activity vacía, en el archivo activity_main.xml, crea los tres botones:

<Button

android:id="@+id/botonTomarFoto"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Tomar Foto" />

<Button

android:id="@+id/botonAlumno"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Alumno" />

<Button

android:id="@+id/botonGrafico"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Gráfico" />

En el archivo MainActivity.java, agrega el siguiente código:

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;
import android.provider.MediaStore;

import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {

private static final int CODIGO_TOMAR_FOTO = 1;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// Botón "Tomar Foto"

findViewById(R.id.botonTomarFoto).setOnClickListener(v -> {

Intent tomarFoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

if (tomarFoto.resolveActivity(getPackageManager()) != null) {

startActivityForResult(tomarFoto, CODIGO_TOMAR_FOTO);

} else {

Toast.makeText(MainActivity.this, "No se puede abrir la cámara", Toast.LENGTH_SHORT).show();

});

// Botón "Alumno"

findViewById(R.id.botonAlumno).setOnClickListener(v -> {

ArrayList<String> alumnos = new ArrayList<>();

alumnos.add("Juan - Informática");

alumnos.add("María - Contador Auditor");


alumnos.add("Pedro - Medicina");

alumnos.add("Ana - Derecho");

alumnos.add("Carlos - Informática");

Intent verAlumnos = new Intent(MainActivity.this, AlumnosActivity.class);

verAlumnos.putStringArrayListExtra("alumnos", alumnos);

startActivity(verAlumnos);

});

// Botón "Gráfico"

findViewById(R.id.botonGrafico).setOnClickListener(v -> {

Intent verGrafico = new Intent(MainActivity.this, GraficoActivity.class);

startActivity(verGrafico);

});

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (requestCode == CODIGO_TOMAR_FOTO && resultCode == RESULT_OK) {

Uri uriFoto = data.getData();

Toast.makeText(MainActivity.this, "Foto guardada en " + uriFoto.toString(),


Toast.LENGTH_SHORT).show();

En el directorio /app/src/main/java crea un nuevo paquete llamado com.tuempresa.tuapp.

Dentro del paquete com.tuempresa.tuapp, crea una nueva clase llamada AlumnosActivity que extienda
de AppCompatActivity.
Agrega el siguiente código a la clase AlumnosActivity:

import android.os.Bundle;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;

import java.util.List;

public class AlumnosActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_alumnos);

List<String> alumnos = new ArrayList<>();

alumnos.add("Juan - Informática");

alumnos.add("María - Contador Auditor");

alumnos.add("Pedro - Medicina");

alumnos.add("Luisa - Derecho");

alumnos.add("Andrés - Informática");

ArrayAdapter<String> adapter = new ArrayAdapter<>(this,

android.R.layout.simple_list_item_1, alumnos);

ListView listaAlumnos = findViewById(R.id.listaAlumnos);

listaAlumnos.setAdapter(adapter);

}
}

Agrega una nueva Activity en el archivo AndroidManifest.xml con el nombre AlumnosActivity y con el
siguiente código:

<activity android:name=".AlumnosActivity"

android:label="@string/alumnos_activity_title">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

Crea una nueva Activity llamada GraficoActivity y agrega el siguiente código:

import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

import com.github.mikephil.charting.charts.BarChart;

import com.github.mikephil.charting.data.BarData;

import com.github.mikephil.charting.data.BarDataSet;

import com.github.mikephil.charting.data.BarEntry;

import java.util.ArrayList;

import java.util.List;

public class GraficoActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grafico);

BarChart grafico = findViewById(R.id.grafico);

List<BarEntry> datos = new ArrayList<>();

datos.add(new BarEntry(0, 100));

datos.add(new BarEntry(1, 50));

datos.add(new BarEntry(2, 75));

datos.add(new BarEntry(3, 200));

BarDataSet dataSet = new BarDataSet(datos, "Ingresos 2023");

BarData barData = new BarData(dataSet);

grafico.setData(barData);

grafico.getDescription().setText("Ingresos 2023");

grafico.invalidate();

Crea los archivos de diseño activity_alumnos.xml y activity_grafico.xml con el siguiente contenido:

activity_alumnos.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<ListView
android:id="@+id/listaAlumnos"

android:layout_width="match_parent"

android:layout_height="match_parent" />

</LinearLayout>

activity_grafico.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<com.github.mikephil.charting.charts.BarChart

android:id="@+id/grafico"

android:layout_width="match_parent"

android:layout_height="match_parent" />

</LinearLayout>
REFERENCIAS BIBLIOGRÁFICAS
IACC. (2023). Herramientas de programación móvil. Animaciones, Gráficos y Multimedia en Android.
Semana 5.

También podría gustarte