como mover un ImageButton

1,213 views
Skip to first unread message

Lisa

unread,
Jun 23, 2010, 1:53:19 AM6/23/10
to desarrolladores-android
Hola a todos, mi duda es la siguiente: resulta que quiero mover un
ImageButton, horizontalmente, se mueve pero sus movimientos son raros,
mi codigo es el siguiente:

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE : {
if (v.equals(btnScroll)) {
x = (int)event.getX();
btnScroll.layout(x, 0, x+20, 25);
}
} break;
}

return true;
}

por favor diganme que es lo que estoy haciendo mal.
gracias de antemano por la respuestas y sugerencias.

Juan de Dios Maldonado Sánchez

unread,
Jun 23, 2010, 5:44:50 AM6/23/10
to desarrollad...@googlegroups.com
Para que funcione correctamente deberías de tener el botón dentro de un AbsoluteLayout. (Elemento obsoleto)

Te recomiendo utilizar un RelativeLayout e ir cambiando su margen izquierdo o derecho para moverlo.

Saludos.

2010/6/23 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,
Jun 23, 2010, 8:42:04 PM6/23/10
to desarrolladores-android
mucha gracias por responder, disculpa por mi ignorancia pero podrias
explicarme un poco mas, por favor.
le comento que cuando presiono y lo muevo el imageButton(btnScroll),
se pinta por aqui por alla.
aqui le dejo el xml para que pueda ver que es lo que estoy haciendo
mal.

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

<ImageButton
android:id="@+id/btnScroll"
android:text=">"
android:layout_width="10dip"
android:layout_height="10dip"
android:background="@drawable/scroll" />

<TextView
android:id="@+id/lbTime"
android:text="00:00"
android:layout_width="37dip"
android:layout_height="20dip"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dip"
android:textSize="15sp" />
</RelativeLayout>

muchas gracias de antemano por su tiempo ya su ayuda.

Juan de Dios Maldonado Sánchez

unread,
Jun 24, 2010, 7:30:20 AM6/24/10
to desarrollad...@googlegroups.com
No puedo darte la solución de forma directa, ya que si no, no aprendes realmente.

Para guiarte, te recomiendo que te estudies bastante bien cómo colocar elementos en un RelativeLayout. Así que haz una búsqueda sobre RelativeLayout y Android en Internet.

Una vez lo domines, intenta hacer un layout con el botón que quieras mover alineado a la izquierda.

Después, en el XML de definición del Layout, cámbiale los parámetros al botón que quieras mover para separarlo un poco del margen izquierdo. (Intenta jugar con el XML del Layout para saber qué parámetro tienes que tocar para que quede más despegado o menos del margen izquierdo)

No tienes que programar nada en JAVA.

Una vez que hayas conseguido ese hito, responde a este mismo mensaje indicando con qué parámetro del XML del Layout has conseguido variar la distancia del botón al margen izquierdo.

Entonces, te daré indicanciones de los siguientes pasos.

Saludos.



2010/6/24 Lisa <lpk...@gmail.com>

--

Lisa

unread,
Jun 24, 2010, 8:50:10 PM6/24/10
to desarrolladores-android
Hola Juan de Dios muchas gracias por responder y por su tiempo, segui
su concejo, y bueno lei un poco de RelativeLayout, no puedo decir que
lo domino, pero por lo menos entiendo un poco mas que antes creo...
Le comento que he logrado :D mover el boton modificando el xml de la
siguiente manera:

<ImageButton
android:id="@+id/btnScroll"
android:text=">"
android:layout_width="10dip"
android:layout_height="10dip"
android:background="@drawable/scroll"
android:layout_marginLeft="100px" />

en resumen el atributo "android:layout_marginLeft" me indica el
espacio extra en el lado izquierdo y cambiando los pixeles puedo
lograr que el boton se acerque mas al lado izquierdo o se aleje mas.

esta bien? por favor espero su respuesta.
de antemano muchas gracias por su tiempo y su ayuda. :D

Lisa

unread,
Jun 25, 2010, 4:33:50 AM6/25/10
to desarrolladores-android
hola Juan de Dios, le comento que he logrado que se mueva, :D :D pero
no se si es la manera correcta, disculpe las molestia pero megustaria
que lo pueda ver y comentarme si esta bien o si existe una forma mas
optima de hacerlo, aqui le dejo el codigo:

@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_MOVE : {
if (v.equals(btnScroll)) {
int x = (int)event.getRawX();
int a = x-btnScroll.getLeft();

btnScroll.layout(btnScroll.getLeft()+a,
btnScroll.getTop(),
btnScroll.getRight()+a,
btnScroll.getBottom());
}
} break;
}

return true;
}

muchas gracias por su ayuda y su guia.
espero su respuesta.
de antemano muchas gracias. :D

Juan de Dios Maldonado Sánchez

unread,
Jun 25, 2010, 7:09:49 AM6/25/10
to desarrollad...@googlegroups.com

Como lo has hecho, se puede considerar correcto. Felicidades por conseguirlo por tu propia cuenta!

On Jun 25, 2010 10:33 AM, "Lisa" <lpk...@gmail.com> wrote:

hola Juan de Dios, le comento que he logrado que se mueva, :D :D pero
no se si es la manera correcta, disculpe las molestia pero megustaria
que lo pueda ver y comentarme si esta bien o si existe una forma mas
optima de hacerlo, aqui le dejo el codigo:


@Override
public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method st...

                    int x = (int)event.getRawX();
                    int a = x-btnScroll.getLeft();

                    btnScroll.layout(btnScroll.getLeft()+a,
                                            btnScroll.getTop(),
                                            btnScroll.getRight()+a,
                                            btnScroll.getBottom());
               }
        } break;
    }

    return true;
}

muchas gracias por su ayuda y su guia.
espero su respuesta.
de antemano muchas gracias. :D


--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de...

Lisa

unread,
Jun 28, 2010, 8:14:50 PM6/28/10
to desarrolladores-android
disculpe por haberme tardado en responder.
que bien entonces continuare con lo que estaba haciendo.
muchas gracias, por su auda y su guia.
:D :D
Reply all
Reply to author
Forward
0 new messages