cambiar de posicion de una imagen con un onClick

1,445 views
Skip to first unread message

Lisa

unread,
Jul 12, 2010, 4:13:43 AM7/12/10
to desarrolladores-android
hola a todos, disculpen que pregunte algo similar, resulta que
anteriormente logre que se mueva una imagen con drag on drop pero
resulta que quise hacer algo similar pero no me funciona.

lo que estoy haciendo es cuando de click a un boton quiero que una
imagen cambie de posicion. hago lo mismo que antes pero nada nose
mueve nada. lo hago de la siguiente manera.

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >

<ImageView
android:id="@+id/imgUparrow"
android:src="@drawable/ep_00_uparrow"
android:layout_width="22dip"
android:layout_height="12dip" />

<LinearLayout android:orientation="horizontal"
android:layout_alignParentBottom="true"
android:layout_height="32dip"
android:layout_width="480dip"
android:layout_centerHorizontal="true" >

<ImageView
android:id="@+id/btnArriba"
android:src="@drawable/btn_upl"
android:layout_width="60dip"
android:layout_height="34dip"
android:layout_alignParentBottom="true" />

<ImageView
android:id="@+id/btnAbajo"
android:src="@drawable/btn_down"
android:layout_width="72dip"
android:layout_height="34dip"
android:layout_alignParentBottom="true" />

<ImageView
android:id="@+id/btnIzq"
android:src="@drawable/btn_left"
android:layout_width="72dip"
android:layout_height="34dip"
android:layout_alignParentBottom="true" />

<ImageView
android:id="@+id/btnDer"
android:src="@drawable/btn_right"
android:layout_width="72dip"
android:layout_height="34dip"
android:layout_alignParentBottom="true" />

</LinearLayout>
</RelativeLayout>

dentro de este xml tengo una imagen(30x30) y abajo tengo un
LinearLayout (un conjunto de botones) y cada vez que presiono un boton
quiero que la imagen se posicione en una posicion determinada(por
ejemplo x=100, y=150) y cada boton su posiciones son diferentes.

y lo que yo hago es lo siguiente:

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (v.equals(btnArriba)) {
imgUparrow.layout(170, 10, 200, 40);
} else
if (v.equals(btnAbajo)) {
imgUparrow.layout(170, 200, 200, 230);
} else
if (v.equals(btnIzq)) {
imgUparrow.layout(10, 150, 40, 180);
} else
if (v.equals(btnDer)) {
imgUparrow.layout(300, 150, 330, 180);
}
}

no se q eu esta mal pero aun que presione los botones no pasa nada,
por favor podrian ayudarme, ademas creo que no estoy entendiendo bien
el concepto de el metodo layout.

gracias de antemano por su ayuda.

Jose Luis Montes

unread,
Jul 12, 2010, 4:26:58 AM7/12/10
to desarrollad...@googlegroups.com
hola,

igual funciona tu manera... pero yo siempre lo he hecho (y visto en los ejemplos, tutoriales etc...) que en el onlick en vez de comparar las "View" tal cual usamos getId tal que asi...


@Override
       public void onClick(View v) {
               // TODO Auto-generated method stub
               if (v.getId(R.id.btnArriba)) {

                       imgUparrow.layout(170, 10, 200, 40);
               } else
               if (v.getId(R.id.btnAbajo)) {

                       imgUparrow.layout(170, 200, 200, 230);
               } else
               if (v.getId(R.id.btnIzq)) {

                       imgUparrow.layout(10, 150, 40, 180);
               } else
               if (v.getId(R.id.btnDer)) {
                       imgUparrow.layout(300, 150, 330, 180);
               }
       }

igual es eso...

saludoss

2010/7/12 Lisa <lpk...@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.


Lisa

unread,
Jul 12, 2010, 4:49:39 AM7/12/10
to desarrolladores-android
hola Jose, muchas gracias por responder.
he cambiado por si a caso la parte del equals por getId, pero aun asi
sigue sin funcionarme, y la verdad no se porque, pues en algunos
ejemplos que antes habia hecho me funcionaba, pero ahora no me
funciona. tienes alguna idea de cual puede ser la causa?

gracias de antemano por tu ayuda.

Jose Luis Montes

unread,
Jul 12, 2010, 5:15:13 AM7/12/10
to desarrollad...@googlegroups.com
has probado a hacer debug a ver si entra en los metodos o en el if???



2010/7/12 Lisa <lpk...@gmail.com>

Lisa

unread,
Jul 13, 2010, 2:31:53 AM7/13/10
to desarrolladores-android
hola Jose, si he entran a los eventos pero no me modifica la ubicacion
de la imagen.

pero le comento cambie la forma de hacer ahora he creado una clase que
solo dibuja una imagen y le adicione los eventos y ahora si me
funciona bien, aunque aun sigo haciendo algunos ajustes, para que haga
exactamente lo que quiero.

muchas gracias por responderme. :D

cualquier cosa volvere a preguntar. :P

gracias.

gustavo adolfo morales garcia

unread,
Aug 1, 2013, 11:27:00 AM8/1/13
to desarrollad...@googlegroups.com
estoy haciendo algo similar quisera saber comolo hiciste, lo de la otra clase y qeu intervinieran tus botones
Reply all
Reply to author
Forward
0 new messages