manolazo
18/03/14, 20:52:39
Buenas.
Me quede atascado en esta tonteria.
Resumiendo:
Construyo un Grilayout en ejecucion:
public void construirGridlayout(){
for (int i =0; i<NUM_FILAS;++i){
for (int j=0; j<NUM_COLUMNAS; ++j){
linear = new LinearLayout(this);
/*En cada LinearLaout meto dos imagenes
una con estado View.Visible y otra Gone*/
//A cada linearLayout le pongo un onTouchListener
linear.setOnTouchListener(new touchPiezas));
}
}
}
El listener en resumidas cuentas:
class touchPiezas implements View.OnTouchListener{
ImageView im1,im2;
@Override
public boolean onTouch(View view, MotionEvent event) {
LinearLayout linear= (LinearLayout)view;
im1= (ImageView) linear.getChildAt(0);
im2 = (ImageView) linear.getChildAt(1);
int action = event.getAction();
switch(action){
case MotionEvent.ACTION_DOWN :
/*Cuando dejo pulsado una imagen se de la vuelta y aparece la de abajo.*/
im1.setVisibility(View.GONE);
im2.setVisibility(View.VISIBLE);
break;
case MotionEvent.ACTION_UP:
/*Suelto el dedo y se revierte la situacion */
im1.setVisibility(View.VISIBLE);
im2.setVisibility(View.GONE);
break;
}
return true;
}
}
La cuestion es como hacer que no pueda pulsar una segunda o mas imagenes del grid hasta que no haya soltado el dedo de la que tengo pulsada???
Al hacer en el bucle linear.setOnTouchListener(new touchPiezas)); ,todas las imagenes tienen asignado un listener.
Quiero que cuando quite el dedo (MotionEvent.ACTION_UP:) si me permita pulsar otra imagen del grid, pero mientras este en MotionEvent.ACTION_DOWN no me lo permita.
No se si me explico.
Lo he intentado de diferentes metodos y no hay manera pero supongo que habra una forma sencilla.
Un saludo
Me quede atascado en esta tonteria.
Resumiendo:
Construyo un Grilayout en ejecucion:
public void construirGridlayout(){
for (int i =0; i<NUM_FILAS;++i){
for (int j=0; j<NUM_COLUMNAS; ++j){
linear = new LinearLayout(this);
/*En cada LinearLaout meto dos imagenes
una con estado View.Visible y otra Gone*/
//A cada linearLayout le pongo un onTouchListener
linear.setOnTouchListener(new touchPiezas));
}
}
}
El listener en resumidas cuentas:
class touchPiezas implements View.OnTouchListener{
ImageView im1,im2;
@Override
public boolean onTouch(View view, MotionEvent event) {
LinearLayout linear= (LinearLayout)view;
im1= (ImageView) linear.getChildAt(0);
im2 = (ImageView) linear.getChildAt(1);
int action = event.getAction();
switch(action){
case MotionEvent.ACTION_DOWN :
/*Cuando dejo pulsado una imagen se de la vuelta y aparece la de abajo.*/
im1.setVisibility(View.GONE);
im2.setVisibility(View.VISIBLE);
break;
case MotionEvent.ACTION_UP:
/*Suelto el dedo y se revierte la situacion */
im1.setVisibility(View.VISIBLE);
im2.setVisibility(View.GONE);
break;
}
return true;
}
}
La cuestion es como hacer que no pueda pulsar una segunda o mas imagenes del grid hasta que no haya soltado el dedo de la que tengo pulsada???
Al hacer en el bucle linear.setOnTouchListener(new touchPiezas)); ,todas las imagenes tienen asignado un listener.
Quiero que cuando quite el dedo (MotionEvent.ACTION_UP:) si me permita pulsar otra imagen del grid, pero mientras este en MotionEvent.ACTION_DOWN no me lo permita.
No se si me explico.
Lo he intentado de diferentes metodos y no hay manera pero supongo que habra una forma sencilla.
Un saludo