2011-05-13 128 views
0

你好,我正在嘗試創建一個像enter image description here這樣的動畫,創造像泡沫一樣的心,但不是100%這樣的。這可以在一些靜態的活動。Android動畫幫助

但我在沒有地方。文檔缺乏示例和API中的示例是不可接受的。製作這樣的動畫應該不那麼難。

我粘貼我的代碼請幫助我。

類文件

import android.app.Activity; 
import android.graphics.drawable.AnimationDrawable; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.widget.RelativeLayout; 

public class AnimationTest extends Activity { 
AnimationDrawable animation; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Button btnStart = (Button) findViewById(R.id.btnStart); 
    final ImageView imgView = (ImageView) findViewById(R.id.img); 

    btnStart.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      startAnimation(); 
     } 
    }); 
    imgView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

     } 
    }); 
} 

class Starter implements Runnable { 
    public void run() { 
     animation.start(); 
    } 
} 

private void startAnimation() { 
    animation = new AnimationDrawable(); 
    animation.addFrame(getResources().getDrawable(R.drawable.one), 100); 
    animation.addFrame(getResources().getDrawable(R.drawable.two), 100); 
    animation.addFrame(getResources().getDrawable(R.drawable.three), 100); 
    animation.addFrame(getResources().getDrawable(R.drawable.four), 100); 
    animation.addFrame(getResources().getDrawable(R.drawable.five), 100); 
    animation.addFrame(getResources().getDrawable(R.drawable.six), 100); 
    animation.addFrame(getResources().getDrawable(R.drawable.seven), 100); 
    animation.addFrame(getResources().getDrawable(R.drawable.eight), 100); 
    animation.setOneShot(false); 


    ImageView imageView = (ImageView) findViewById(R.id.img); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(80, 90); 
    params.alignWithParent = true; 
    params.addRule(RelativeLayout.CENTER_IN_PARENT); 
    imageView.setLayoutParams(params); 
    imageView.setImageDrawable(animation); 
    imageView.post(new Starter()); 
} 

}

XML文件

<TextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:text="Frame by Frame Animation Example" 
     android:gravity="center" /> 

    <RelativeLayout android:layout_width="fill_parent" 
     android:layout_height="fill_parent" android:layout_gravity="center_horizontal"> 

     <ImageView android:id="@+id/img" android:layout_width="80px" 
      android:layout_height="90px" android:layout_centerInParent="true" /> 

     <Button android:id="@+id/btnStart" android:text="Start Animation" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" /> 

    </RelativeLayout> 

</LinearLayout> 

圖像,可以過去的一些其他圖像太 124

編輯 我想要什麼來完成 第一步:魚來自左側 SETP2:魚來自右側

第三步:一個心臟出現,生長在這兩個魚 步驟4的正中央更大:那麼小的心飛走,消失

+1

你想讓他們動畫?你想讓每顆心分別進行動畫製作嗎?或者你想讓整個圖像做些什麼? – FoamyGuy

+0

讓我編輯這個我想要的 –

回答

3

Grow animations

Translate + scale + rotate animation set

入門C你看那些。這將教會動畫API的基礎知識。爲了獲得一個又一個的鏈式效果,你正在尋找唯一的方法,我發現它使用animationListener來獲取回調,當一個結束,然後從那裏開始下一個。老實說,如果你只是將它製作成電影文件並在VideoView中播放,而不是單獨創建所有這些視圖並將動畫應用於所有視圖,則可能更容易實現您的需求。

+0

請分享您的代碼 –

+0

好主意去試試videoview .. thnx –

2

屬性動畫:

在XML定義的動畫,超過指定的時間量來修改顏色的屬性,alpha值。

查看動畫:

幀動畫:動畫是XML文件,顯示圖像的在順序的序列來定義。 (如膜)

吐溫動畫: 吐溫動畫創建由單個圖像執行一系列變換的動畫。

AlphaAnimation:控制tranperancy變化。 RotateAnimation:控制旋轉。 ScaleAnimation:控制增長和縮小 TranslateAnaimation:控制位置變化。