Java 自定义图像视图在缩放动画/动画集期间消失

Java 自定义图像视图在缩放动画/动画集期间消失,java,android,android-layout,android-animation,Java,Android,Android Layout,Android Animation,我对具有两个缩放动画的动画集有问题。基本上,我有一个扩展ImageView的自定义视图,并尝试向其添加一个扩展/收缩动画。用户将按下按钮并设置图像动画,以基本上填充更多或更少的空间。我试图通过缩放图像视图来实现这一点 动画可以工作,但当动画本身运行时,它基本上会使图像消失,完成后,图像会重新出现并缩放。动画集完成后,图像将再次正确缩放 我真的没有主意了,想知道在开始动画之前我是否需要做些什么?任何想法都将不胜感激。下面是代码片段I: public void animateImageView(Vi

我对具有两个缩放动画的动画集有问题。基本上,我有一个扩展ImageView的自定义视图,并尝试向其添加一个扩展/收缩动画。用户将按下按钮并设置图像动画,以基本上填充更多或更少的空间。我试图通过缩放图像视图来实现这一点

动画可以工作,但当动画本身运行时,它基本上会使图像消失,完成后,图像会重新出现并缩放。动画集完成后,图像将再次正确缩放

我真的没有主意了,想知道在开始动画之前我是否需要做些什么?任何想法都将不胜感激。下面是代码片段I:

public void animateImageView(View customImageView) {
    ...
    Animation stretchLeft = new ScaleAnimation(left, newLeft, top, newTop);
    Animation stretchRight = new ScaleAnimation(right, newRight, top, newTop);

    AnimationSet set = new AnimationSet(true);
    set.addAnimation(stretchLeft);
    set.addAnimation(stretchRight);
    set.setDuration(250);
    set.setInterpolator(new AccelerateInterpolator(1.0f));
    customImageView.startAnimation(set);
    ...
}

您对left、newleft、top、newTop等使用的值是什么?如果您需要的话,它们都在屏幕坐标范围内。通常顶部为144,新顶部为0,左侧为600,新左侧为450用于展开,反之亦然,用于再次收缩图像。这些数字也会根据您使用的屏幕而变化。请注意,这些数字是比例因子,因此它们将乘以您的基本值。所以在我的85by90dp自定义图像视图中,它会随着这些数字消失,因为图像变得太大了,我测试的值是1和2。此外,您的图像视图将被限制在其父容器内,而不能超出父容器。另外,你的stretchLeft和StretchLight动画将同时播放,因此它们将有点相互争斗,并且在彼此之上繁殖,这可能是你想要的…嗯,好吧。我肯定是在使用绝对像素,而不是缩放。我改了,但似乎还是没用。我正在覆盖自定义视图中的onLayout、onMeasure、onDraw和draw方法,您认为这与此有关吗?