2012-05-04 13 views
6

Mam przycisk obrazu, który chciałbym poruszać/poruszać, gdy zostanie dotknięty. Chciałbym, żeby poruszyło się w sposób podobny do ikony aplikacji iPhone'a, gdy są przyciśnięte przez bardzo długi czas.Jak po kliknięciu zrobić obraz/drgać?

Dzięki!

+0

Google dał mi tak: http://stackoverflow.com/questions/9448732/shaking-wobble-view-animation-in-android. – Warpzit

+3

I google dało mi to [wiggle wiggle wiggle wiggle yeah] (http://www.youtube.com/watch?v=xRKcHK1PiuU) – goat

Odpowiedz

11

Spróbuj tego, aby potrząsnąć obrazem na detektorze kliknięć z podglądem obrazu.

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

Zobacz ten fragment bierze z Android API Demo here

+3

gdzie jest animacja? Nie w łączu ... – for3st

12

spróbuje użyć tego:

<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

Lubię ten

<?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

A jak zastosować to do obrazu? Tutaj nie ma wiele wyjaśnień ... –

Powiązane problemy