1

我有一个ImageView覆盖整个屏幕的大屏幕。我制作了一个“滑入式”菜单,当您按下屏幕上的任意位置时会激活该菜单,我使用动画做到了这一点,因此看起来菜单会滑入。

由于内部的图像,ImageView这会导致动画卡顿。当我离开ImageView空的时候,它真的很顺利。

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

我已经尝试在动画完成时设置WillNotDrawtrueImageView并返回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是由a完成的Bitmap

如何在播放动画时保持图像可见,但仍保持动画的流畅度?

4

2 回答 2

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

            }
        });
于 2012-06-07T09:36:53.757 回答
0

彼得,

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

于 2012-06-07T09:39:05.313 回答