지금 이미지 버튼에 프레임 에니메이션을 넣어서 눌렀을때
에니메이션이 돌아갑니다. 그런데 문제는 처음 한번 눌렀을 땐 돌아가는데 또 누르면 에니메이션이
돌아가지 않습니다. 제 생각엔 에니메이션을 리셋 해줘야 되는 부분이 있어야 하나? 라고 고민 해 보았는데
어떻게 해야 할지 모르겠습니다.
package android.com;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
public class Second extends Activity {
private static final String TAG = "Second";
AnimationDrawable mAni;
Animation mAni2;
ImageView img,img2,img3,img4;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setFullscreen();
Log.d(TAG, "Enter Second Page");
setContentView(R.layout.second);
img = (ImageView)findViewById(R.id.ImageButton01);
img2 =(ImageView)findViewById(R.id.ImageButton02);
img3 =(ImageView)findViewById(R.id.ImageButton03);
img4 =(ImageView)findViewById(R.id.ImageButton04);
mAni = (AnimationDrawable)img.getBackground();
mAni2 = AnimationUtils.loadAnimation(this, R.anim.fstar);
setFirstPageListener(new int[]{
R.id.ImageButton01,
R.id.ImageButton02,
R.id.ImageButton03,
R.id.ImageButton04
});
}
private void setFullscreen() {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
private void setFirstPageEvents(View v) {
switch(v.getId())
{
case R.id.ImageButton01:
mAni.start();
mAni.setOneShot(true);
break;
case R.id.ImageButton02:
img2.startAnimation(mAni2);
// float scale = getApplicationContext().getResources().getDisplayMetrics().density;
// Log.d("Density = ",scale+"");
break;
case R.id.ImageButton03:
mAni.start();
mAni.setOneShot(true);
break;
case R.id.ImageButton04:
mAni.start();
mAni.setOneShot(true);
break;
}
// mAni.stop();
}
private void setFirstPageListener(int[] id) {
for(int rId : id){
((View)findViewById(rId)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setFirstPageEvents(view);
}
});
}
}
}
이미지 버튼1,3,4가 같은 것이고 이게 한번만 돌고 다시 눌렀을 땐 돌지 않습니다.