단순히 그림을 돌려서 에니메이션을 주려고 하는데요
책에는 프레임 에니메이션으로 긴 에니메이션도 가능하다고 나와있는데 프레임 수가 15컷 이상되면 OutofMemory가
나버리네요. 그리고 에니메이션도 돌아가지 않고 첫번째 컷만 나옵니다...
-------- .java ---------
package android.com;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.view.Window;
import android.view.animation.Animation;
import android.widget.ImageView;
public class animation extends Activity {
/** Called when the activity is first created. */
AnimationDrawable mAni;
Animation ani = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setContentView(R.layout.main);
// final AnimationDrawable animation1 = (AnimationDrawable) getResources().getDrawable(R.drawable.test1p);
ImageView img = (ImageView)findViewById(R.id.ImageView01);
mAni = (AnimationDrawable)img.getBackground();
//img.setBackgroundDrawable(animation1);
//animation1.start();
}
@Override
protected void onResume()
{
super.onResume();
mAni.start();
}
}
---- xml ------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageView android:id="@+id/ImageView01"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="@drawable/test1p"/>
</LinearLayout>
--- 프레임 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/p1_00" android:duration="50"/>
<item android:drawable="@drawable/p1_01" android:duration="50"/>
<item android:drawable="@drawable/p1_02" android:duration="50"/>
<item android:drawable="@drawable/p1_03" android:duration="50"/>
<item android:drawable="@drawable/p1_04" android:duration="50"/>
<item android:drawable="@drawable/p1_05" android:duration="50"/>
<item android:drawable="@drawable/p1_06" android:duration="50"/>
<item android:drawable="@drawable/p1_07" android:duration="50"/>
<item android:drawable="@drawable/p1_08" android:duration="50"/>
<item android:drawable="@drawable/p1_09" android:duration="50"/>
<item android:drawable="@drawable/p1_10" android:duration="50"/>
<item android:drawable="@drawable/p1_11" android:duration="50"/>
<item android:drawable="@drawable/p1_12" android:duration="50"/>
<item android:drawable="@drawable/p1_13" android:duration="50"/>
<item android:drawable="@drawable/p1_14" android:duration="50"/>
<item android:drawable="@drawable/p1_15" android:duration="50"/>
</animation-list>
대체 뭐가 잘못된 걸까요?
테스트 폰으로는 갤럭시A 사용합니다.
자답 입니다. ㅜㅜ
public class FrameAnimationDemo extends Activity{
ImageView icon;
AnimationDrawable animation;
Handler handler;
@Override
protected void onCreate(Bundle bundle){
super.onCreate(bundle);
setContentView(R.layout.main);
icon = (ImageView)findViewById(R.id.icon);
icon.setBackgroundResource(R.animation.animation);
animation = (AnimationDrawable) icon.getBackground();
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
animation.start();
super.onWindowFocusChanged(hasFocus);
}
}
이런식으로 코딩하면 돌아가네요...
http://dmh11.tistory.com/57
이 사이트에서 참고하였습니다.