![]() |
|
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Repetir bucle
Buenas tengo un codigo con un contador y le dijo que hasta que el contador llegue a 5000 vaya sumando contador+=1 y que cuando llegue a 5000 cambie un cuadro de posicion y vuelva a empezar, pero el "vuelva a empezar" es lo que no consigo, no consigo que cuando contador sea igual a 0 vuelva a ejecturar el while y el if de nuevo.
Lo he probado con continue pero tampoco. Alguien sabe como lo podria hacer? Muchas gracias. Código:
public class MyActivity extends Activity {
ImageView img;
int cordx;
int cordy;
int cont=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
//Inicializamos el objeto ImageView
img = (ImageView) findViewById(R.id.imageView);
while(cont<=5000) {
cont++;
if (cont >= 4000) {
//Random para que la imagen cambie de posicion aleatoriamente
Random random = new Random();
cordx = random.nextInt(1000);
cordy = random.nextInt(800);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(150, 150);
img.setLayoutParams(layoutParams);
layoutParams.leftMargin = cordx; //XCOORD
layoutParams.topMargin = cordy; //YCOORD
cont = 0;
}
}
}
}
|
|
|
|
#2
|
||||
|
||||
|
Lo que no se es como ni siquiera tu Activity se llega a mostrar, tienes un ciclo infinito en el onCreate. Si el objetivo es que el While no termine nunca, no veo fallos, pero desde luego ese código en Android lo único que va a hacer es mostrarte una pantalla en negro y a los pocos segundos decirte que la aplicación está colgada y si quieres Esperar o Forzar Cierre.
|
|
#3
|
||||
|
||||
no doy pie con bola...como podria hacer un bucle que me cambie las coordenadas aproximademente cada 3 o 4 segundos?He estado mirando tutoriales de Java pero este caso en concreto no lo he visto. Muchas gracias por tu tiempo y perdona si las preguntas son estupidas |
|
#4
|
||||
|
||||
|
Hay muchas formas, pero así a bote pronto podrías crear un hilo (o un AsyncTask que no termine nunca) y cada 4 segundos haces el cambio (si usas un hilo mediante un Handler, si usas el AsyncTask en el onProgressUpdate).
También puedes usar un CountDownTimer con finalización en 5 horas (no creo que alguien vaya a tener la aplicación abierta más de 5 horas, aunque no se si hay tiempo máximo para el CountDownTimer, pero en la página de Google no menciona nada al respecto) y Tick de 4 segundos, y en el onTick haces el cambio. |
|
#5
|
||||
|
||||
|
Muchas gracias crack por tu paciencia
|
|
#6
|
||||
|
||||
|
Perdona por mi ignorancia pero me podrias poner un breve ejemplo por favor, lo intento hacer dentro de una estructura surfaceview pero no hay manera.
Última edición por loadgo Día 12/09/14 a las 19:07:09 |
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 19:16:58 (GMT +1)
HTCMania: líderes desde el 2007


no doy pie con bola...como podria hacer un bucle que me cambie las coordenadas aproximademente cada 3 o 4 segundos?


