【问题标题】:Temporary prevent drawing while animation is running动画运行时临时阻止绘制
【发布时间】:2012-06-07 19:42:58
【问题描述】:

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

由于ImageView 中的图像,这会导致动画卡顿。当我将ImageView 留空时,它真的很顺利。

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

我尝试在我的ImageView 上将WillNotDraw 设置为true,并在动画完成后返回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 完成

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

【问题讨论】:

  • 您是如何制作动画的?你怎么称呼它?这是可以通过多种不同方式完成的事情之一,因此肯定需要一些代码来帮助您。请粘贴相关代码。 :)
  • 您仍然缺少动画本身的代码。看起来好像是用 XML 文件创建的?虽然它可能看起来不相关(实际上可能不是),但除非我们看到它,否则我们不会知道。您可能也想粘贴它。这是否也有一个 slide_up 对应?这个顶部菜单使用了多少个动画?

标签: android animation drawing android-imageview


【解决方案1】:

如果你正在使用动画侦听器并注意动画完成并在最后使用它绘制图像怎么样,

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

            }
        });

【讨论】:

  • 我已经尝试过了,但它会使图像在动画过程中消失,并在动画结束时重新出现。
【解决方案2】:

彼得,

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

【讨论】:

  • 我编辑了我的代码,但它似乎并没有消除任何明显的压力。我将使用更多信息编辑我的问题。
猜你喜欢
  • 2015-09-21
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 1970-01-01
  • 2012-09-01
  • 2011-01-07
  • 1970-01-01
相关资源
最近更新 更多