动画运行时临时阻止绘图

时间:2012-06-07 09:14:47

标签: android animation drawing android-imageview

我有一个覆盖整个屏幕的大ImageView。我做了一个“滑入式”菜单,当你按下屏幕上的任何地方时,它会激活,我使用动画做到这一点,所以它看起来像是菜单滑入。

由于ImageView内部的图像,这会导致动画断断续续。当我离开ImageView时它变得非常平滑。

这是因为ImageView内的图像在动画过程中不断被重绘,而我的Android平板电脑很难处理它。

我已经尝试在我的WillNotDraw上设置trueImageView并在动画完成后设置回false,但这会导致图像在动画时消失播放(顺利),然后再次出现。

以下是我创建动画的方法:

topMenu.setVisibility(View.VISIBLE);
Animation slideDown = AnimationUtils.loadAnimation(this, R.anim.slide_down);
slideDown.setStartOffset(200);
topMenu.startAnimation(slideDown);

这是动画xml:

<?xml version="1.0" encoding="utf-8"?>
<set 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_interpolator">
   <translate 
       android:fromYDelta="-40" 
       android:toYDelta="0" 
       android:duration="200"/>
</set>

ImageView内的图片由Bitmap

完成

如何在播放动画时让图像保持可见,但仍能保持动画的平滑度?

2 个答案:

答案 0 :(得分:0)

如果你正在使用动画监听器并注意动画完成并使用它在最后绘制图像,那该怎么说呢?

slideDown.setAnimationListener(new AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onAnimationRepeat(Animation animation) {
                // TODO Auto-generated method stub

            }

            public void onAnimationEnd(Animation animation) {
                // Draw your Image here

            }
        });

答案 1 :(得分:0)

彼得,

根据您的代码,每次要运行动画时都会重新加载动画。您可能希望将动画加载自身移动到类成员而不是局部变量。这将缓解 某些 的压力。提供更多信息时的进一步细节。