안드로이드 프레임별 애니메이션, 속성 애니메이션의 간단한 실현
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 파일 아래에 사운드 파일 놓기