Android Image View动画留下痕迹

时间:2013-07-18 12:48:43

标签: android android-animation

我使用动画集从屏幕中心向左上角设置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个动画它很好但是使用动画集导致踪迹。有什么提示可以避免这种情况吗?

干杯

1 个答案:

答案 0 :(得分:1)

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

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

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

像魅力一样!