안드로이드 애니메이션의 프레임 애니메이션(Frame Animations)

3174 단어
Frame 애니메이션, 즉 순서대로 미리 만들어진 이미지를 재생하는 것은gif 그림의 원리와 유사하다
자원 파일을 프로젝트res/drawable 디렉터리에 저장
Android에서 프레임 애니메이션은 AnimationDrawable 클래스의 지원을 받아야 합니다. 다음은 AnimationDrawable의 일반적인 방법에 대해 간단하게 설명합니다.
void start(): 프레임별 애니메이션을 시작합니다.
void stop(): 프레임별 애니메이션 재생을 중지합니다.
void addFrame(Drawable frame, int duration):AnimationDrawable에 프레임을 추가하고 기간을 설정합니다.
int getDuration (int i): 지정한 index 프레임의 지속 시간을 받습니다.
Drawable getFrame (int index): 지정된 index의 프레임 Drawable을 가져옵니다.
int getNumberOfframes(): 현재 AnimationDrawable의 모든 프레임 수를 가져옵니다.
boolean isOneShot (): 현재 AnimationDrawable에서 한 번 실행할지 여부입니다.true에서 한 번 실행하고false에서 반복해서 재생합니다.
boolean isRunning(): 현재 AnimationDrawable이 재생 중인지 여부입니다.
void setOneShot(boolean oneShot): AnimationDrawable 실행 여부를 설정하고true 실행 한 번,false 순환 재생
1. 프레임 애니메이션 만들기
xml
<?xml version="1.0" encoding="utf-8"?>
<!-- 
	    animation-list,  oneshot          ,   false          
	    ,  item                
	android:duration                
 -->
<animation-list
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:oneshot="true"
  >
  	<item android:drawable="@drawable/icon1" android:duration="150"></item>
  	<item android:drawable="@drawable/icon2" android:duration="150"></item>
  	<item android:drawable="@drawable/icon3" android:duration="150"></item>
  	<item android:drawable="@drawable/icon4" android:duration="150"></item>
  	<item android:drawable="@drawable/icon5" android:duration="150"></item>
  	<item android:drawable="@drawable/icon6" android:duration="150"></item>
</animation-list>

Java
private AnimationDrawable frameAnim;
frameAnim =new AnimationDrawable();
//  AnimationDrawable     
frameAnim.addFrame(getResources().getDrawable(R.drawable.img0), 50);
frameAnim.addFrame(getResources().getDrawable(R.drawable.img1), 50);
frameAnim.addFrame(getResources().getDrawable(R.drawable.img2), 50);
frameAnim.addFrame(getResources().getDrawable(R.drawable.img3), 50);
frameAnim.addFrame(getResources().getDrawable(R.drawable.img4), 50);
frameAnim.addFrame(getResources().getDrawable(R.drawable.img5), 50);<strong>
</strong>

1. 프레임 애니메이션 사용
애니메이션을 표시하려면 setBackground Resource나 setBackground Drawable 방법으로 뷰의 배경으로 설정하고 start 방법을 사용해서 애니메이션을 실행할 수 있습니다
weather_icon_drawable.setBackgroundResource(R.drawable.weather_anim);
AnimationDrawable anim = (AnimationDrawable)weather_icon_drawable.getBackground();
anim.start();
애니메이션을 동시에 멈추면stop 방법을 사용할 수 있습니다
if (anim != null && anim.isRunning()) {
 anim.stop();
}

사실 애니메이션을view의 이미지 Resource로 설정할 수 있습니다. 이 때 애니메이션은 우리가 제어할 필요가 없고 자동으로 실행됩니다.
weather_icon_drawable.setImageResource(R.drawable.weather_anim);
또는
android:src="@drawable/weather_anim"

좋은 웹페이지 즐겨찾기