Está en la página 1de 15

Instituto Tecnolgico Superior de Coatzacoalcos

D
E
S
A
R
R
INGENIERA INFORMATICA
O
L
Materia: Desarrollo de aplicaciones mviles L
Profesor: M.I. Israel Castellanos Reyes.
Periodo escolar: Febrero Junio 2017 O
Alumno: Luis Miguel Ruiz Martnez D
Actividad: Reporte Hilos E
A
P
Lugar y fecha: Coatzacoalcos, Ver. A jueves 27 de
abril de 2017 LI
C

En esta prctica aprenderemos a crear operaciones de clculo de una factorial la cual nos
de un resultado correcto
Nonbramos nuetra aplicacin hilos2 > nombramos nuestra clase MainActivity >
seleccionamos API. > Seleccionamos actividad en blanco.

Codigo usado

Codigo XML
//esto se crear al inicio del proyecto, y tambin las libreras
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="luis.itesco.tarea.MainActivity">//direccin de nuetro proyecto

//agregamos Linearlayout.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
//primer edittext el cual ingresara los datos
<EditText
android:id="@+id/entrada"//agregamos un indentificador
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="numberDecimal"
android:text="5">

<requestFocus/>//lugar por defecto del foco

</EditText>
//creamos el bonton con sus datos.
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="calcularOperacion"
android:text="Calcular factorial" />

</LinearLayout>
//segundo textview
<TextView
android:id="@+id/salida"//identificador
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text=""
android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout> //fin del layout

Codigo JAVA

//direccin de nuetro proyecto


package luis.itesco.tarea;
//libreias necesarias
import android.os.SystemClock;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

private EditText entrada;//variable llamada entrada, esto ayudara a agregar los numero. Tipo
privado
private TextView salida;//variable llamada salida, por medio de este nos podtrara el resultado
es de tipo privado.

@Override
//la variable de entrada la cambiaremos por a tipo edittext
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

entrada= (EditText) findViewById(R.id.entrada);


salida= (TextView) findViewById(R.id.salida);//cambio
}

public void calcularOperacion (View view){//ara la operacin cuando el usuario calcule el


factorial.
int n=Integer.parseInt(entrada.getText().toString());
salida.append(n+"!=");//el apppend aadimos el smbolo ! que seria de factorial
int res=factorial(n);
salida.append(res+"\n");//variable tipo entero, de nombre res y se almacena en n
}

private int factorial(int n) {


int res=1;
for(int i=1; i<=n; i++){//bucle de la variable y agregando valores 1 hasta n
res*=i;
SystemClock.sleep(1000);//bloqueara el hilo un segundo.
}
return res;
}
}
//finaliza el mtodo y la clase
Capturas
Despues de varios intentos se bloquea el hilo. Y la aplicacin ya no funciona
En esta prctica aprendimos a cmo crear los mtodos para realizar una operacin y como es que se
puede llamar otro mtodo para realizar los calculo y llevar a cabo la operacin de manera exitosa.

Instituto Tecnolgico Superior de Coatzacoalcos

INGENIERA INFORMATICA

Materia: Desarrollo de aplicaciones mviles


Profesor: M.I. Israel Castellanos Reyes.
Periodo escolar: Febrero Junio 2017 D
Alumno: Luis Miguel Ruiz Martnez
Actividad: Reporte Runnable. E
S
A
Lugar y fecha: R
Coatzacoalcos, Ver. A jueves 27 de
abril de 2017
R
O
L
En esta practica vamos a realizar otro procedimiento alternativo para un hilo.
L
Nonbramos nuetra aplicacin runnable> nombramos nuestra clase MainActivity >
seleccionamos API. > Seleccionamos actividad en blanco. O
D
Codigo usado E
Codigo XML A
//cdigo de entrada del proyecto. A la hora de crear el proyecto.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" P
xmlns:tools="http://schemas.android.com/tools"

LI
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical"
android:background="#ffffff"//color
android:id="@+id/layout"//identificador
tools:context="luis.itesco.tarea.MainActivity">//direccin del proyecto. C
//aqu colocamos el tamao, color y posicin del texto.
<TextView
android:id="@+id/texto"
android:textColor="#000000"//color
android:textSize="35sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Interfaz Runnable" />
</LinearLayout>//fin del layout

Codigo JAVA

package luis.itesco.tarea;
//libreras con las que vamos a trabajar
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity {


//agregamos las variables que vamos a utilizar.
boolean continuar=true;
String mensaje="";
int[] contador={0,0};
TextoAnimado texto, texto2;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);// Los doscontadores son los elementos de un array

LinearLayout ll=(LinearLayout) findViewById(R.id.layout);


LayoutParams params=new LayoutParams(600,100);
// En esta aparte agregamos las referencias de nuestros botones de la layout e
inicializamos las variables Thread hilo.
texto=new TextoAnimado (this,40,0);
texto.setLayoutParams(params);
ll.addView(texto);

texto2=new TextoAnimado (this,200,1);


texto2.setLayoutParams(params);
texto2.setBackgroundColor(Color.YELLOW);//fondo del contador
ll.addView(texto2);
//llamando variables
Thread hilo = new Thread(texto);
hilo.start();
Thread hilo2 = new Thread(texto2);
hilo2.start();
}
// a continuacin agregamos la clase textoanimado e ingresamos las variables que
utilizaremos.
class TextoAnimado extends View implements Runnable {
int retraso;
int i;
Paint paint = new Paint();
//a continuacin creamos el mtodo Textoanimado la cual nos mostrara el conteo y el
retraso temporal y el ndice del contador (0,1).
public TextoAnimado(Context context, int retraso, int i) {
super(context);
this.retraso = retraso;
this.i = i;
paint.setColor(Color.BLACK);
paint.setTextSize(30);
paint.setAntiAlias(true);
}
//luego en esta parte creamos el mtodo onDraw la cual mostrara el resultado y el mensaje de la
cuenta.
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawText(mensaje, 50, 50, paint);
}
//ya en la parte final definimos nuestro mtodo Run la cual mostrara el mensaje que
recibir del contador y la mostrara en pantalla.
public void run() {
while (continuar) {
try {
Thread.sleep(retraso);
} catch (InterruptedException e) {
;
}
contador[i]++;
mensaje = "contador" + contador[i];//contador
postInvalidate();
}
}
}
}
Capturas

En esta prctica aprendimos es que este procedimiento en lugar de extender la clase Thread, es que
cualquier clase puede implementar un interfaz.
D
Instituto Tecnolgico Superior de Coatzacoalcos
E
S
A
R
R
O
INGENIERA INFORMATICA
L
L
Materia: Desarrollo de aplicaciones mviles O
Profesor: M.I. Israel Castellanos Reyes.
Periodo escolar: Febrero Junio 2017 D
Alumno: Luis Miguel Ruiz Martnez E
Actividad: Reporte Barra de progreso. A
P
LI
Lugar y fecha: Coatzacoalcos, Ver. A jueves 27 de
abril de 2017 C

En esta practica vamos a realizar una barra de progreso, el cual muestra el avance.
Nonbramos nuetra aplicacin barradeprogreso > nombramos nuestra clase MainActivity >
seleccionamos API. > Seleccionamos actividad en blanco.

Codigo usado

Codigo XML
//cdigo de entrada que trae al crear el proyecto.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff" //color que tendremos de fondo en nuestra aplicacin

tools:context="luis.itesco.tarea.MainActivity"> //direccin de nuestra aplicacin

//en esta parte del xml vamos a agregar un TextView con un identificador @+id/texto, y un Button
con un identificador @+id/Boton1.
<TextView //empezar a crear nuetro texview
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World!"
android:id="@+id/texto" //identificador
android:background="#000000"/>
//informacin del botn
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Empezar"
android:id="@+id/Boton1"/> //identificador

</LinearLayout>//fin del layout

Codigo JAVA
package luis.itesco.tarea;//direccin de nuestra aplicacin
//datos generados en la creacin de la aplicacin y libreras que vamos a ocupar en la aplicacin
import android.os.Process;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.*;
import android.app.*;
import android.os.*;
import android.widget.*;
import android.view.View.OnClickListener;
public class MainActivity extends AppCompatActivity implements OnClickListener{

ProgressDialog progreso;
Controlador handler=new Controlador();
int maximo=100;
int delay=100;
int estilo=1;
TextView texto;
//ya en esta parte creamos nuestro mtodo Oncreate y hacemos la referencia a nuestros botones
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView (R.layout.activity_main);// la actividad que estamos usando


Button boton=(Button) findViewById(R.id.Boton1);
texto= (TextView) findViewById(R.id.texto);
boton.setOnClickListener(this);
}
// tambin creamos el mtodo onClick y el mtodo onCreateDialog.
@Override
public void onClick(View v)
{
showDialog(estilo);
}
//inicia mtodo onCreateDialog para visulizar el progreo.
@Override
public Dialog onCreateDialog(int id)
{
progreso = new ProgressDialog(this);
progreso.setProgressStyle(estilo);
progreso.setMessage("");
return progreso;
}

@Override
public void onPrepareDialog(int id,Dialog dialog)
{
progreso =(ProgressDialog) dialog;
progreso.setProgressStyle(estilo);
progreso.setMax(maximo);
progreso.setProgress(0);
progreso.setMessage("Ejecutando hilo en background");// esto pasa en el proceso de
ejecucin
Hilo thread=new Hilo();
thread.start();
}

//inicia la clase contador el cual llevara el conteo del progreso de la ejecucin


class Controlador extends Handler
{
@Override
public void handleMessage (Message msg)
{
int total= msg.getData().getInt("total");
progreso.setProgress(total);
texto.setText("Total"+total+"maximo"+ maximo);
if (total==maximo)
dismissDialog(estilo);
}
}
// continuacin creamos la clase hilo la cual hereda de thread la cual recibir el
mensaje de ejecucin del hilo y mostrar el porcentaje del progreso.
class Hilo extends Thread
{
@Override //contador
public void run()
{
for (int i =0; i <= maximo; i++)
{
try{
Thread.sleep(delay);
}
catch (InterruptedException e){
;
}
Message msg = handler.obtainMessage();
Bundle b = new Bundle();
b.putInt("total", i);
msg.setData(b);
handler.sendMessage(msg);

}
}
}
} //fin

Capturas

Pulsando
v

También podría gustarte