En esta practicas realizamos una alarma de cuenta atrás.
Para esta alarma empleamos la clase de CountDownTimer .
Ver http://developer.android.com/intl/es/reference/android/os/CountDownTimer.html .
Lo primero es dar nombre a nuestra aplicación.
Seleccionamos un icono bajado de internet.
Elegimos una Activity vacía, sin menú.
Colocamos todos los elementos , botones, textos, etc...
Aún no tengo pillado el truco para colocar los elementos en el lugar que yo quiero, por lo que tardo tiempo en colocarlos a mi gusto.
Para ampliar la imagen en el navegador, dar el botón derecho, y en menú dar ver imagen.
Ejecutando el programa en un dispositivo físico.
La alarma es como máximo de 60 minutos.
Para este programa empleamos la clase de CountDownTimer .
Creamos el tipo ContadorAbajo |
private CountDownTimer ContadorAbajo; |
Empezamos la cuenta atrás pulsando el botón START . Colocamos el tiempo a descontar (timer) en milisegundos, y descontamos 1 milisegundo cada vez. Luego lo activamos con ContadorAbajo.start(); |
ContadorAbajo = new MyCountDownTimer(timer, 1); ContadorAbajo.start(); |
Si queremos parar la cuenta atrás pulsamos el botón STOP. |
ContadorAbajo.start(); |
Cada milisegundo se llama a la clase CountDownTimer |
//Cuenta atras public class MyCountDownTimer extends CountDownTimer { public MyCountDownTimer(long startTime, long interval) { super(startTime, interval); } @Override public void onFinish() { Mtext1.setText("Cuenta terminada!"); toneG.startTone(ToneGenerator.TONE_DTMF_S, 1000); } @Override public void onTick(long millisUntilFinished) { long i; long min,seg; Mtext1.setText( " " + millisUntilFinished/100 ); i=millisUntilFinished ; i/=1000; min=i/60; seg= i%60; Mcuenta.setText(min + " min. "+ seg +" seg."); } } |
Cuando termina la cuenta y el contador está a cero se produce un sonido de 1000mS creado al inicio con: toneG = new ToneGenerator(AudioManager.STREAM_ALARM, 100); |
toneG.startTone(ToneGenerator.TONE_DTMF_S, 1000); |
PROGRAMA
Recordar:
Debemos hacer dos ajustes:
El primero en la pantalla de activity_main cambiar para que utilice la API 15 Android 4.0.3 .
Por defecto viene Android 4.4W, este es para sistemas wearable (relojes,...). Estos modelos no permiten EditText por lo que nos dará error.
Segundo - Si giramos el dispositivo quedan ocultos algunos botones, quedando sin funcionalidad el programa.
Para arregla esto debemos modificar el fichero "AndroidManifest.xml" y añadir:
android:screenOrientation="portrait"
en la línea:<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" />
Saludos
Juan Galaz
Bibliografía:
http://developer.android.com/intl/es/reference/android/os/CountDownTimer.html
http://developer.android.com/intl/es/reference/android/media/ToneGenerator.html
http://androidbite.blogspot.com.es/2012/11/android-count-down-timer-example.html