0% encontró este documento útil (0 votos)
125 vistas6 páginas

Aplicación Móvil de Cálculo de Billetes

Este documento describe una tarea para crear una aplicación móvil que permita calcular el monto de billetes y monedas a partir de una cantidad ingresada. La aplicación tendrá la opción de cambiar el color de fondo y limpiar los campos mediante swipes. El diseño incluye un logo, áreas para ingresar y mostrar la información y zonas indicando cómo usar los swipes.

Cargado por

Cristal Lantigua
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
125 vistas6 páginas

Aplicación Móvil de Cálculo de Billetes

Este documento describe una tarea para crear una aplicación móvil que permita calcular el monto de billetes y monedas a partir de una cantidad ingresada. La aplicación tendrá la opción de cambiar el color de fondo y limpiar los campos mediante swipes. El diseño incluye un logo, áreas para ingresar y mostrar la información y zonas indicando cómo usar los swipes.

Cargado por

Cristal Lantigua
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ASIGNATURA

Introducción al Desarrollo de Aplicaciones Móviles

PROFESOR
Freidy Nuñez Pérez

TITULO DE LA TAREA
Tarea tema 2.

NOMBRE COMPLETO
Cristal Ashiell Lantigua Guerrero

MATRICULA
2022-0024

PERIODO
2024-C-1
Crear una aplicación con una imagen del de la institución como logo en el medio. Que
al presionar botón de volumen para arriba me calcule de una cantidad entera cuantos
billetes de 100, 50, 20 tiene y moneda de 5 y 10 centavos tienes y me los muestre en un
textview.
• A mitad de la pantalla para abajo que para salir de la aplicación debo hacer un
swipe de izqueirda a derecha, de derecha a izquierda para poder limpiar el
contenido del el edittext y textview.
• En la parte superior deben aparecerme una zona que me permita cambiar el color
de fondo de la pantalla usando degradado de colores, es decir de arriba hacia
bajo o de abajo hacia arriba entre blanco y negro y los colores en medio de
blanco y negro

• En la aplicación se me debe indicar en que zonas debo dar swipe para cerrar o
para limpiar
• Deben tener en cuenta que si la pantalla está en vertical debe funcionar y si está
en horizontal también la parte del swipe en la pantalla completa
• Todo el cálculo atreves de las teclas del dispositivo en el ediText, no usar
botones en el diseño.
XML:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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"
tools:context=".MainActivity">
<LinearLayout
android:id="@+id/layoutLinea"
android:layout_width="413dp"
android:layout_height="217dp"
android:layout_marginTop="44dp"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<View
android:id="@+id/color1"
android:layout_width="467dp"
android:layout_height="44dp"
android:background="@drawable/beige"
android:clickable="true"
android:contentDescription="Color: Beige" />
<View
android:id="@+id/color2"
android:layout_width="match_parent"
android:layout_height="51dp"
android:background="@drawable/grisclaro"
android:clickable="true"
android:contentDescription="Color: Gris Claro"/>
<View
android:id="@+id/color3"
android:layout_width="match_parent"
android:layout_height="61dp"
android:background="@drawable/gris"
android:clickable="true"
android:contentDescription="Color: Gris"/>
<View
android:id="@+id/color4"
android:layout_width="match_parent"
android:layout_height="57dp"
android:background="@drawable/negro"
android:clickable="true"
android:contentDescription="Color: Negro"/>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="412dp"
android:layout_height="279dp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/layoutLinea"
app:layout_constraintVertical_bias="0.579">
<ImageView
android:id="@+id/imageLogo"
android:layout_width="179dp"
android:layout_height="240dp"
android:src="@drawable/logo_itla"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textInfo"
android:layout_width="match_parent"
android:layout_height="149dp"
android:layout_above="@+id/swText"
android:layout_marginBottom="2dp"
android:gravity="center"
android:text="Ingrese una cantidad:"

android:textAppearance="@style/TextAppearance.AppCompat.Large" />
<EditText
android:id="@+id/swText"
android:layout_width="228dp"
android:layout_height="66dp"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="5dp"
android:layout_marginEnd="0dp"
android:layout_marginBottom="62dp"
android:ems="10" />
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/LayoutSwipe"
android:layout_width="416dp"
android:layout_height="185dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout3">
<TextView
android:id="@+id/swipeLeftView"
android:layout_width="match_parent"
android:layout_height="88dp"
android:text="Cerrar---------------**"
android:gravity="center"/>
<TextView
android:id="@+id/swipeRightView"
android:layout_width="match_parent"
android:layout_height="106dp"
android:text="**--------------------Limpiar"
android:gravity="center"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

Swipes:
package com.example.tarea2;

import android.annotation.SuppressLint;
import android.content.Context;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
public class Swipes implements View.OnTouchListener {
private final GestureDetector gestureDetector;
public Swipes(Context context){gestureDetector = new
GestureDetector(context,
new GestureListener());}
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View v, MotionEvent event){
return gestureDetector.onTouchEvent(event);
}
private final class GestureListener extends
GestureDetector.SimpleOnGestureListener{
private static final int SWIPE_THRESHOLD = 100;
private static final int SWIPE_VELOCITY_THRESHOLD = 100;
@Override
public boolean onDown(MotionEvent i){
return true;}
@Override
public boolean onSingleTapConfirmed(MotionEvent i) {
onClick();
return super.onSingleTapConfirmed(i);}
@Override
public boolean onDoubleTap(MotionEvent i) {
onDoubleClick();
return super.onDoubleTap(i);}
@Override
public boolean onFling(MotionEvent i1, MotionEvent i2, float
velocityX, float
velocityY) {
boolean resp = false;
float difY =i2.getY()-i1.getY();
float difX =i2.getX()-i1.getX();
if (Math.abs(difX)>Math.abs(difY)){
if(Math.abs(difX)>SWIPE_THRESHOLD &&
Math.abs(velocityX)>SWIPE_VELOCITY_THRESHOLD){
if(difX>0){
resp = onSwipeRight();
}else{
resp = onSwipeLeft();
}
}
}else {
if (Math.abs(difY) > SWIPE_THRESHOLD&&
Math.abs(velocityY)>SWIPE_VELOCITY_THRESHOLD){
if (difY >0) {
resp = onSwipeBottom();
}else{
resp = onSwipeTop();
}
}
}
return resp;
}
}
public void onClick(){
}
public void onDoubleClick(){
}
public boolean onSwipeRight() { return false; }
public boolean onSwipeLeft() { return false; }
public boolean onSwipeTop() { return false; }
public boolean onSwipeBottom() { return false; }
}

Java:
package com.example.tarea2;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.view.KeyEvent;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private EditText swText;
private TextView textInfo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
swText = findViewById(R.id.swText);
textInfo = findViewById(R.id.textInfo);
swText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP &&
event.getAction() ==
KeyEvent.ACTION_UP) {
int currentAmount =
Integer.parseInt(swText.getText().toString());
calculate(currentAmount);
return true;
}
return false;
}
});
}
private void calculate(int amnt) {
int billete100 = amnt / 100;
int billete50 = amnt / 50;
int billete20 = amnt / 20;
int moneda10 = amnt / 10;
int moneda5 = amnt / 5;
String resp = "Billetes de 100: " + billete100 +
"\nBilletes de 50: " + billete50 +
"\nBilletes de 20: " + billete20 +
"\nMonedas de 10: " + moneda10 +
"\nMonedas de 5: " + moneda5;
textInfo.setText(resp);
}
}

También podría gustarte