2

我正在使用动画集从屏幕中心到左上角为 ImageView 设置动画。我正在翻译和缩放视图。

这是代码片段。

        AnimationSet tempAnimation=new AnimationSet(true);

        TranslateAnimation anim = new TranslateAnimation( 0,xPos, 0, yPos );


        anim.setFillAfter( true );
        anim.setFillEnabled(true);


        ScaleAnimation scaleanimation = new ScaleAnimation(1, (float)0.22, 1, (float)0.22, Animation.RELATIVE_TO_SELF, (float)0.5, Animation.RELATIVE_TO_SELF, (float)0.5);
        scaleanimation.setDuration(1000); 
        scaleanimation.setFillEnabled(true);
        scaleanimation.setFillAfter(true);

        tempAnimation.addAnimation(scaleanimation);
        tempAnimation.addAnimation(anim);
        tempAnimation.setDuration(1000);

      // This takes care that the ImageViews stay in their final positions after animating . 
        tempAnimation.setFillEnabled(true);
        tempAnimation.setFillAfter(true);

        mimageView.startAnimation(tempAnimation);

所以,问题是它只是在很短的时间内留下了轨迹/先前的位置。但它看起来并不好或平滑。我注意到,如果我只使用 1 个动画它很好,但使用动画集会导致轨迹.有什么技巧可以避免这种情况吗?

干杯

4

1 回答 1

1

最终在https://code.google.com/p/android/issues/detail?id=22151找到了答案。

缩放和平移动画在 Android 2.3 上存在问题。解决此问题的最简单方法是在图像周围添加一个小的透明填充。在上面显示的代码中,只需添加

mimageView.setPadding(1,1,1,1);

奇迹般有效!

于 2013-07-18T13:04:00.757 回答