2011-05-13 4 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

,363,210

편집 내가 1 단계를 달성하려면 무엇 : 물고기가 왼쪽 setp2에서 온다 : 물고기가 오른쪽에서 오는

STEP3 : 심장이 나타나고 두 물고기 STEP4의 중심에서 더 큰 성장 : 다음 작은 마음이 날아서

+1

어떻게 애니메이트 하시겠습니까? 그리고 당신은 각 마음이 움직이기를 원하나요? 또는 전체 이미지에 무언가를하기를 원하십니까? – FoamyGuy

+0

내가 원하는 것을 편집 해주세요 –

답변

3

Grow animations

Translate + scale + rotate animation set

시작 B를 사라 그걸 보면서. 애니메이션 API의 기초를 가르쳐 줄 것입니다. 하나의 또 다른 체인 효과를 얻으려면, 내가 찾은 유일한 방법을 찾고 있습니다. 하나는 끝나면 다음 호출을 시작하기 위해 animationListener를 사용하는 것입니다. 솔직히 동영상 파일을 동영상 파일로 만든 다음 별도로 모든 뷰를 만들고 모든 애니메이션을 적용하는 대신 동영상 파일로 재생하면 필요에 맞게 구현하는 것이 더 쉽습니다.

+0

코드를 공유하십시오 –

+0

videoview를 시도 할 좋은 아이디어 .. thnx –

2

애니메이션 속성 :

지정된 시간에 걸쳐 색의 특성, 알파 값을 수정 XML로 정의 된 애니메이션.

보기 애니메이션 :

프레임 애니메이션 : 애니메이션을 위해 화상들의 시퀀스를 나타낸다 XML 파일에 한정된다. (영화와 같이)

Tween 애니메이션 : Tween 애니메이션은 단일 이미지에 대해 일련의 변형을 수행하여 애니메이션을 만듭니다.

AlphaAnimation : 변경 사항을 제어합니다. RotateAnimation : 회전을 제어합니다. ScaleAnimation : 확대 및 축소를 제어합니다. TranslateAnaimation : 위치 변경을 제어합니다.