2012-05-04 79 views
6

我有一個圖像按鈕,我想在觸摸時進行搖動/擺動。我希望它能以類似於iPhone應用程序圖標的方式在長時間按下時進行擺動。單擊時如何進行圖像晃動/擺動?

謝謝!

+0

谷歌給了我這樣的: http://stackoverflow.com/questions/9448732/shaking-wobble-view-animation-in-android。 – Warpzit

+3

谷歌給了我這個[擺動擺動搖擺是啊](http://www.youtube.com/watch?v=xRKcHK1PiuU) – goat

回答

11

試試這個對imageview的點擊收聽晃動的圖像。

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

看到這個片段被從Android API演示以here

+3

動畫在哪裏?不在鏈接中... – for3st

12

嘗試使用此一:

<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

我喜歡這個

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

我該如何將它應用於圖像?這裏沒有太多的解釋... –