Acceder

Ver la Versión Completa : [ CONSULTA ] Pausa dentro de un IF


marellanor
29/08/14, 06:35:42
Es posible hacer una pausa dentro de un IF?. Si es posible, cómo sería?.

Saludos y Gracias!

rafaxplayer
29/08/14, 08:06:52
por ejemplo:

SystemClock.sleep(1000);

kriogeN
29/08/14, 12:19:25
Eso es un mata apps, úsalo sólo si tu IF está en otro Thread que no sea el UI.

marellanor
29/08/14, 18:20:33
Lo que pasa es que tengo un if que compara 2 imágenes(memorice.) Obtengo la primera(seteo imagen). Obtengo la segunda(seteo imagen). Si son diferentes las vuelvo a esconder. Pero lo que pasa que la segunda imagen no se alcanza a ver. Intente hacer la pausa antes de volver a esconderlas, pero no funciona, como que se ejecuta todo junto.

Adjunto codigo.

public void GirarImagen(ImageView img) {

if(ingreso==0)
{
anterior=img.getId();
ingreso=1;
String uri = Opciones[img.getId()];
int imageResource = getResources().getIdentifier(uri, null, getPackageName());
Drawable image = getResources().getDrawable(imageResource);
img.setImageDrawable(image);

}
else
{

String uri = Opciones[img.getId()];
int imageResource = getResources().getIdentifier(uri, null, getPackageName());
Drawable image = getResources().getDrawable(imageResource);
img.setImageDrawable(image);

if(Opciones[anterior]!=Opciones[img.getId()])
{


String uri2 = "drawable/signointe";
int imageResource2 = getResources().getIdentifier(uri2, null, getPackageName());
Drawable image2 = getResources().getDrawable(imageResource2);


SystemClock.sleep(1000);

img.setImageDrawable(image2);
ImageView img_anterior = (ImageView) findViewById(anterior);
img_anterior.setImageDrawable(image2);


ingreso=0;
}
else
{
ingreso=0;
}

}

kriogeN
29/08/14, 19:05:12
Por lo que estoy diciendo, paras el hilo UI, por lo que tu aplicación se para y no pinta nada, hasta que la función entera no termina no se ejecuta el siguiente onDraw.

marellanor
29/08/14, 19:07:55
y cómo lo tendría que hacer entonces. No tengo idea como hacerlo.

Te lo agradecería bastante.

kriogeN
29/08/14, 19:25:40
Prueba con un CountDownTimer

http://developer.android.com/reference/android/os/CountDownTimer.html

marellanor
29/08/14, 20:02:12
//Girar Imagenes
public void GirarImagen(ImageView img) {
//Toast.makeText(getApplicationContext(), "ID: "+img.getId(),Toast.LENGTH_SHORT).show();

if(ingreso==0)
{
anterior=img.getId();
ingreso=1;
String uri = Opciones[img.getId()];
int imageResource = getResources().getIdentifier(uri, null, getPackageName());
Drawable image = getResources().getDrawable(imageResource);
img.setImageDrawable(image);
}
else
{

String uri = Opciones[img.getId()];
int imageResource = getResources().getIdentifier(uri, null, getPackageName());
Drawable image = getResources().getDrawable(imageResource);
img.setImageDrawable(image);

new CountDownTimer(3000, 1000) {

public void onTick(long millisUntilFinished) {

}

public void onFinish() {
//mTextField.setText("done!");
}
}.start();


if(Opciones[anterior]!=Opciones[img.getId()])
{

String uri2 = "drawable/signointe";
int imageResource2 = getResources().getIdentifier(uri2, null, getPackageName());
Drawable image2 = getResources().getDrawable(imageResource2);



img.setImageDrawable(image2);
ImageView img_anterior = (ImageView) findViewById(anterior);
img_anterior.setImageDrawable(image2);


ingreso=0;
}
else
{
ingreso=0;
}

}

try {

}
}


Lo puse así, supongo que está mal, porque no me funcionó.