Java 调用图像后如何返回图像?

Java 调用图像后如何返回图像?,java,android,image,animation,Java,Android,Image,Animation,这是到目前为止我的代码。因此,当我单击图像时,它会按预期移动。酷。但当我再次单击图像时,它不会移回原始位置。有人能帮忙吗?仅供参考,变量“依赖”在全局范围内。谢谢 depends = false; image.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (depends){ TranslateAn

这是到目前为止我的代码。因此,当我单击图像时,它会按预期移动。酷。但当我再次单击图像时,它不会移回原始位置。有人能帮忙吗?仅供参考,变量“依赖”在全局范围内。谢谢

depends = false;

image.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (depends){
            TranslateAnimation noob =
                new TranslateAnimation(0, 0, 0, +90);

            noob.setDuration(1000);
            noob.setFillAfter(true);
            image.startAnimation(noob);
        } else{
            TranslateAnimation translateAnimation =
                new TranslateAnimation(0, 0, 0, -90);
            depends = true;
            translateAnimation.setDuration(1000);
            translateAnimation.setFillAfter(true);
            image.startAnimation(translateAnimation);
        }
    }
});

只是黑暗中的一枪。如果这没有帮助,我将删除我的答案

            if (depends){
                TranslateAnimation noob = new TranslateAnimation(0, 0, 0, +90);



                noob.setDuration(1000);

                noob.setFillAfter(true);

                image.startAnimation(noob);

                depends = false;  <-- ADD THIS
            } else{
                TranslateAnimation translateAnimation = new TranslateAnimation(0, 0, 0, -90);

                   depends = true;

                translateAnimation.setDuration(1000);

                translateAnimation.setFillAfter(true);

                image.startAnimation(translateAnimation);
            }
if(视情况而定){
TranslateAnimation noob=新的TranslateAnimation(0,0,0,90);
noob.setDuration(1000);
noob.setFillAfter(true);
图像。startAnimation(noob);

depends=false;这是因为旧的动画API只会转换视图的可绘制部分,而不会转换视图本身(及其触摸区域)。如果单击原始图像“所在”的位置,应该会看到它向后移动


解决方案:使用新的
动画师
API,并与后台兼容

未发生任何问题。感谢您的尝试!我是否至少正确地假设您的“else”块没有被击中?是的,你是。实际上是我的错,我没有告诉你我在原始范围内初始化了depends布尔变量为false。请参阅修订。我更新了我的答案。在没有更多上下文的情况下,我会说下面应该做的事情:
ObjectAnimator anim=ObjectAnimator.offload(图像,“translationY”,0.f,90.f);anim.setDuration(1000);anim.start();