Java 动画don';t使用ImageView可绘制的更改
您好,我有一个动画问题,实际上我想淡入我的ImageView,而它正在改变它的资源。 它不工作,我可以改变资源,但没有任何动画Java 动画don';t使用ImageView可绘制的更改,java,android,xml,android-animation,Java,Android,Xml,Android Animation,您好,我有一个动画问题,实际上我想淡入我的ImageView,而它正在改变它的资源。 它不工作,我可以改变资源,但没有任何动画 private void checkX() { // TODO Auto-generated method stub switch (x) { case (1): { startingAnimation(); xImg.setImageResource(R.drawable.test_uno); e
private void checkX() {
// TODO Auto-generated method stub
switch (x) {
case (1): {
startingAnimation();
xImg.setImageResource(R.drawable.test_uno);
endingAnimation();
break;
}
case (2): {
startingAnimation();
xImg.setImageResource(R.drawable.test_due);
endingAnimation();
break;
}
case (3): {
startingAnimation();
xImg.setImageResource(R.drawable.test_tre);
endingAnimation();
break;
}
case (4): {
startingAnimation();
xImg.setImageResource(R.drawable.test_quattro);
endingAnimation();
break;
}
case (5): {
x = 1;
checkX();
break;
}
case (0): {
x = 4;
checkX();
break;
}
}
}
private void endingAnimation() {
// TODO Auto-generated method stub
ObjectAnimator animation2 = ObjectAnimator.ofFloat(xImg, "alpha", 255);
animation2.setDuration(1000);
animation2.start();
}
private void startingAnimation() {
// TODO Auto-generated method stub
ObjectAnimator animation = ObjectAnimator.ofFloat(xImg, "alpha", 0);
animation.setDuration(1000);
animation.start();
}
每次我按下一个按钮(加或减1到X)时,都会调用checkX
如何更改动画和ImageView资源?调用动画的onAnimationEnd时,尝试更改图像源。例如:
animation.addListener(new AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) { }
@Override
public void onAnimationRepeat(Animator animation) { }
@Override
public void onAnimationEnd(Animator animation) {
// change your ImageView's source here
}
@Override
public void onAnimationCancel(Animator animation) { }
});
在ImageView上应用淡出动画,并将animationListener设置为淡出动画。在动画结束时,更改视图资源并在其上设置淡入动画 用于淡入动画
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator());
fadeIn.setDuration(1000);
final AnimationSet animation = new AnimationSet(false);
animation.addAnimation(fadeIn);
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setInterpolator(new AccelerateInterpolator());
fadeOut.setDuration(300);
final AnimationSet animation = new AnimationSet(false);
animation.addAnimation(fadeOut);
fadeout.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
//change resource of Imageview here
}
});
用于淡出动画
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator());
fadeIn.setDuration(1000);
final AnimationSet animation = new AnimationSet(false);
animation.addAnimation(fadeIn);
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setInterpolator(new AccelerateInterpolator());
fadeOut.setDuration(300);
final AnimationSet animation = new AnimationSet(false);
animation.addAnimation(fadeOut);
fadeout.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
//change resource of Imageview here
}
});
这就是在动画上实现listner的方法
Animation fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator());
fadeIn.setDuration(1000);
final AnimationSet animation = new AnimationSet(false);
animation.addAnimation(fadeIn);
Animation fadeOut = new AlphaAnimation(1, 0);
fadeOut.setInterpolator(new AccelerateInterpolator());
fadeOut.setDuration(300);
final AnimationSet animation = new AnimationSet(false);
animation.addAnimation(fadeOut);
fadeout.setAnimationListener(new Animation.AnimationListener(){
@Override
public void onAnimationStart(Animation arg0) {
}
@Override
public void onAnimationRepeat(Animation arg0) {
}
@Override
public void onAnimationEnd(Animation arg0) {
//change resource of Imageview here
}
});
如果答案有用的话,你可以接受。很乐意帮忙!切士