기본적으로 아래와 같이 ImageView의 background나 src에 Animation 되어 있는 xml을 넣어두면
문제 없이 애니메이션이 동작이 되었습니다.
drawable_animation.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
<item android:drawable="@drawable/image_a" android:duration="500" />
<item android:drawable="@drawable/image_b" android:duration="500" />
<item android:drawable="@drawable/image_c" android:duration="500" />
</animation-list>
layout.xml
<ImageView
android:id="@+id/ani"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/drawable_animation"/>
이렇게 하면 왠만한 폰에서 동작이 잘 이뤄 집니다.
하지만!!! 넥서스 시리즈 등 몇개의 폰에서는 애니메이션 효과가 나지 않는 것을 확인 할 수 있습니다.
이건 AnimationDrawable을 start 해주지 않아서 발생한 문제 입니다.
소스에 아래와 같은 코드를 추가 합니다.
ImageView ani = (ImageView) findViewById(R.id.ani);
AnimationDrawable frameAnimation = (AnimationDrawable) ani.getDrawable();
frameAnimation.start();
위 소스에서 getDrawable() 이나 getBackground() 함수를 사용 함에 따라 구분하시면 됩니다.
감사합니다.
## 이블로그는 어디까지는 찾았던 부분을 잊지 않기 위해 올려놓은 것 입니다.
내용이 부실해도 이해해 주시길 바랍니다.
'나의 플랫폼 > 안드로이드' 카테고리의 다른 글
[Android] 디자인 관련 괜찮은 사이트 (0) | 2015.11.04 |
---|---|
[Android] 한 FrameActivity 안에 여러개의 ViewPager를 사용할 때 주의점. (1) | 2015.11.03 |
[Android] TextSize에서 sp와 dp를 사용할 때! (0) | 2015.10.28 |
[Android] Toast 글씨 사이즈 변경 (0) | 2015.10.28 |
cannot be cast to android.widget.HeaderViewListAdapter (0) | 2015.10.22 |