안드로이드 프레임별 애니메이션, 속성 애니메이션의 간단한 실현

9588 단어 폐기
여기서 우리는 간단한 한 프레임씩 애니메이션, 즉 한 세트의 그림이 빠르게 돌아가는 애니메이션 효과를 실현한다.
애니메이션의 레이아웃 파일: (이 xml 파일은 AS2.2에drawable 디렉터리에만 있고 낮은 버전은 anim 디렉터리에 놓을 수 있습니다)

 
    




 
             :(  ImageView      ) 
   
   
  
    

코드 구현:
    /**
     *      
     */
    private void initAnim() {
        imgLoading.setBackgroundResource(R.drawable.order_loading);
        animLoading = (AnimationDrawable) imgLoading.getBackground();
    }
    //         
    animLoading.start();

    //     
    if (animLoading.isRunning()) {
        animLoading.stop();
    }
 
  
    : , 。 。

    

    , 。    

   

android:duration="400"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="0"
android:toYDelta="-580" />
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.3"
android:toYScale="1.3" />
 
             :(  ImageView      ) 
   
   
  
android:id="@+id/rocket"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:src="@drawable/rocket"/>

코드 구현:
    ImageView rocket;//  
    SoundPool soundPool;//   
    /**
     *      
     */
    private void initAnim() {
Animation animation = AnimationUtils.loadAnimation(getActivity(), R.anim.rocket_anim);
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
rocket.setVisibility(View.VISIBLE);
//
soundPool.play(1, 1, 1, 0, 0, 1);
}
@Override
public void onAnimationEnd(Animation animation) {
rocket.setVisibility(View.GONE);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
   //      
   private void loadSound() {
       soundPool = new SoundPool(2, AudioManager.STREAM_SYSTEM, 5);
       soundPool.load(getActivity(), R.raw.rocket, 1);
   }
    //              
   rocket.startAnimation(animation);

참고: raw 파일 아래에 사운드 파일 놓기

좋은 웹페이지 즐겨찾기