본문 바로가기
아카이브/Android

[Android] 안드로이드 공부의 시작과 프레임 애니메이션

by Mildwhale 2012. 8. 31.

iOS개발만 하던 중 최근들어 Android도 공부를 하기 시작했다.

공부를 하며 느낀점은... 폐쇄적인 애플의 정책이 조금 불만스럽긴 하지만 개발의 편의성은.. 감사하다는거...?

XML연동부터 레이아웃 구성, 이벤트 처리 등.. 불편한점이 많지만 차차 나아질거라 생각한다. 

지금은 익숙하지 않아서 생기는 문제이기를...... (희망사항)


공부방식은 iOS용으로 만들었던 앱을 안드로이드 버전으로 재 구현하는 방법을 선택했다.

따라서 비슷한 기능을 파악하고, 해당하는 대체할 수 있는 기능을 위주로 공부중이다.

그러던 중 프레임 애니메이션에서 발목이 잡혔다.


열심히 검색을 해 본 결과.. 역시 안드로이드는 프레임 애니메이션도 XML로 만든 후 ImageView에 적용시킨 뒤

애니메이션 객체를 생성하여 그..... 아.. 복잡하다..


소스코드를 보면서 알아보는게 더 나을 듯 싶다.. 아래는 예제 소스코드이다.


아래와 같이 XML파일을 Drawable폴더에 작성해준다.

파일명은 anim_coverani.xml로 하였다.


<?xml version="1.0" encoding="utf-8"?>
<animation-list android:oneshot = "false" xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable = "@drawable/coverani1" android:duration = "100"/>
    <item android:drawable = "@drawable/coverani2" android:duration = "100"/>
</animation-list>


다음은 Activity JAVA 소스코드이다.

	private ImageView imgCover;
	private AnimationDrawable animation;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		AppManager.getInstance().setRootActivity(this);

		imgCover = (ImageView) findViewById(R.id.imageView1);
		imgCover.setImageResource(R.drawable.anim_coverani);// 이미지를 XML 과 연결해준다.

		animation = (AnimationDrawable) imgCover.getDrawable();// getDrawable이
																// 핵심이다... 이놈때문에
																// 삽질을 몇시간을했는지;;
																// 다른 예제 소스에서는
																// getBackGround()를
																// 호출했는데 내가 하면
																// NullPointer
																// 에러를 뿜어낸다...

		// 별도의 스레드에서 애니메이션을 돌려야한다.
		imgCover.post(new Runnable() {
			public void run() {
				animation.start();
			}
		});
	}