안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요
ImageView를 Animation효과중 fade_in, fade_out 을 주고싶은데
생각처럼 잘 되질 않네요.
xml에서 Animation효과를 주는방법은
ViewFlipper 안에 ImageView를 감싸고
자바코드에서
ViewFlipper선언후
mFlipper.startFlipping();
mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_in));
mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_out));
이렇게 해주면 되는건 알고있는데요
현재 적용시키고싶은 프로젝트에서는 xml을 사용하지않구요
Layout이나 ImageView를 상속받아서 하고있어요.
xml을 추가하고 위처럼 하면 되긴하지만
적용시키고 싶은 프로젝트를 제가 처음부터 진행한게 아니라
중간에 넘겨받아서 바꿀수 없는 실정이에요.
그래서 자바코드상에서 Animation효과를 주고싶은데
잘안되네요.
Layout은 RelativeLayout을 상속받았구요
이미지 같은 경우네는 통신으로 서버에서 이미지를 받아서 보여주는 방식을 쓰고있어요.
삼일동안 Animation효과때문에 구글링하면서 여러방법을 해봤는데 안되네요.
ImageView를 Animation효과중 fade_in, fade_out 을 주고싶은데
생각처럼 잘 되질 않네요.
xml에서 Animation효과를 주는방법은
ViewFlipper 안에 ImageView를 감싸고
자바코드에서
ViewFlipper선언후
mFlipper.startFlipping();
mFlipper.setInAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_in));
mFlipper.setOutAnimation(AnimationUtils.loadAnimation(this,
android.R.anim.fade_out));
이렇게 해주면 되는건 알고있는데요
현재 적용시키고싶은 프로젝트에서는 xml을 사용하지않구요
Layout이나 ImageView를 상속받아서 하고있어요.
xml을 추가하고 위처럼 하면 되긴하지만
적용시키고 싶은 프로젝트를 제가 처음부터 진행한게 아니라
중간에 넘겨받아서 바꿀수 없는 실정이에요.
그래서 자바코드상에서 Animation효과를 주고싶은데
잘안되네요.
Layout은 RelativeLayout을 상속받았구요
이미지 같은 경우네는 통신으로 서버에서 이미지를 받아서 보여주는 방식을 쓰고있어요.
삼일동안 Animation효과때문에 구글링하면서 여러방법을 해봤는데 안되네요.
2010.06.08 18:22:54
Animation.AnimationListener을 animation에 등록을 하신 후 animation에 종료시 원하는 action처리를 넣어주시면 될듯합니다.
ani.setAnimationListener(anitest);
Animation.AnimationListener anitest = new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
ImageView img = (ImageView)findViewById(R.id.simple_anim);
ImageView.setVisibility(View.INVISIBLE);
}
};
ani.setAnimationListener(anitest);
Animation.AnimationListener anitest = new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
ImageView img = (ImageView)findViewById(R.id.simple_anim);
ImageView.setVisibility(View.INVISIBLE);
}
};




아래 코드를 적용하시면 되겠습니다.
AlphaAnimation ani = new AlphaAnimation(0, 1); //fade-in
AlphaAnimation ani = new AlphaAnimation(1, 0); //fade-out
ani.setDuration(ms);
ImageView.setAnimation(ani);
ImageView.startAnimation(ani);