2012-05-04 11 views
6

Tengo un botón de imagen que me gustaría sacudir/menear cuando se toca. Me gustaría que se mueva de una manera similar a los iconos de la aplicación iPhone cuando se presionan durante mucho tiempo.¿Cómo agito/meneo una imagen cuando hago clic?

Gracias!

+0

Google me dio esto: http://stackoverflow.com/questions/9448732/shaking-wobble-view-animation-in-android. – Warpzit

+3

Y google me dio esto [meneo de meneo por meneo de meneo sí] (http://www.youtube.com/watch?v=xRKcHK1PiuU) – goat

Respuesta

11

Pruebe esto para sacudir la imagen en la escucha de clic de la vista de imagen.

public void onClick(View v) 
    { 
    Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake); 
    findViewById(R.id.pw).startAnimation(shake); 
    } 

Ver este fragmento está tomando de la demostración de la API de Android here

+3

¿dónde está la animación? No en el enlace ... – for3st

12

tratar de utilizar éste:

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <rotate 
     android:duration="70" 
     android:fromDegrees="-5" 
     android:pivotX="50%" 
     android:pivotY="50%" 
     android:repeatCount="5" 
     android:repeatMode="reverse" 
     android:interpolator="@android:anim/linear_interpolator" 
     android:toDegrees="5" /> 
    <translate 
     android:fromXDelta="-10" 
     android:toXDelta="10" 
     android:repeatCount="5" 
     android:repeatMode="reverse" 
     android:interpolator="@android:anim/linear_interpolator" 
     android:duration="70" /> 
</set> 
6

me gusta esta

<?xml version="1.0" encoding="utf-8"?> 
<set 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:fillAfter="true"> 

    <translate 
     android:fromXDelta="-20" 
     android:toXDelta="19" 
     android:duration="20" /> 
    <translate 
     android:startOffset="20" 
     android:fromXDelta="19" 
     android:toXDelta="-18" 
     android:duration="20" /> 
    <translate 
     android:startOffset="40" 
     android:fromXDelta="-18" 
     android:toXDelta="17" 
     android:duration="20" /> 
    <translate 
     android:startOffset="60" 
     android:fromXDelta="17" 
     android:toXDelta="-16" 
     android:duration="20" /> 
    <translate 
     android:startOffset="80" 
     android:fromXDelta="-16" 
     android:toXDelta="14" 
     android:duration="20" /> 
    <translate 
     android:startOffset="100" 
     android:fromXDelta="14" 
     android:toXDelta="-12" 
     android:duration="20" /> 
    <translate 
     android:startOffset="120" 
     android:fromXDelta="-12" 
     android:toXDelta="10" 
     android:duration="20" /> 
    <translate 
     android:startOffset="140" 
     android:fromXDelta="10" 
     android:toXDelta="-7" 
     android:duration="20" /> 
    <translate 
     android:startOffset="160" 
     android:fromXDelta="-7" 
     android:toXDelta="4" 
     android:duration="20" /> 
    <translate 
     android:startOffset="200" 
     android:fromXDelta="4" 
     android:toXDelta="0" 
     android:duration="20" /> 
    <translate 
     android:startOffset="220" 
     android:fromXDelta="0" 
     android:toXDelta="0" 
     android:duration="20" /> 
</set> 
+0

¿Y cómo aplico esto a una imagen? No hay mucha explicación aquí ... –

Cuestiones relacionadas