Trocar Imagem do ImageView Ajuda [Android]

3 respostas
R

Bom dia, Pessoal!

Preciso trocar as imagens do imageView passando o dedo sobre a imagem.

Alguém sabe como posso fazer isso?

3 Respostas

ArthurTurtle
Rotiv, da uma olhada e ve se te ajuda:
public class abc extends Activity implements OnTouchListener 
{
     ImageView img;
     protected void onCreate(Bundle savedInstanceState) 
     {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.one);

                img = (ImageView) findViewById(R.id.imageView1);
                img.setOnTouchListener(this);
     }

        public boolean onTouch(View v, MotionEvent event) 
    {
        switch (event.getAction())
        {
            case MotionEvent.ACTION_DOWN:
            {       
                  // Here u can write code which is executed after the user touch on the screen 
                     break; 
            }
            case MotionEvent.ACTION_UP:
            {             
                   // Here u can write code which is executed after the user release the touch on the screen    
                 break;
            }
            case MotionEvent.ACTION_MOVE:
            {  
               // Here u can write code which is executed when user move the finger on the screen   
                break;
            }
        }
        return true;
    }

Codigo retirado de http://stackoverflow.com/questions/6262084/how-to-slide-image-with-finger-touch-in-android

Ai para mudar a imagem vc pode fazer assim:
Bitmap bm = Bitmap.createScaledBitmap(
				BitmapFactory.decodeFile(arquivoNoSDCard),
				400, 450, false);

Abrss

R

Opa,

Vlw Brother, ajudou sim, como faço para saber se o usuario clicou do lado direito ou esquerdo da tela, para saber se eu chama a proxima Imagem, ou a imagem Anterior.

Obrigado

ArthurTurtle

Rotiv, cara eu nunca tentei reproduzir isso, mais o MotionEvent tem dois metodos: getX e getY esses caras vão te retornar um float você pode fazer alguns teste por exemplo:

float x = event.getX(); float y = event.getY(); Log.e("TESTE", "Cordenada X:" x+" Cordenada Y:"+y);

E ver oque esses caras retonam pra você e depois fazer algo doo tipo:

case MotionEvent.ACTION_MOVE:  
            {    
               float x = event.getX();
		float y = event.getY();
                  if(x>90){
                        //esquerda, por exemplo
                   }else{
                       //direita
                    }
                break;  
             }

Qualquer coisa so dar um toque
abrs

Criado 14 de setembro de 2012
Ultima resposta 14 de set. de 2012
Respostas 3
Participantes 2