首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AnimationDrawable自动启动

AnimationDrawable自动启动
EN

Stack Overflow用户
提问于 2013-07-25 12:47:40
回答 3查看 2.1K关注 0票数 5

当我通过AnimationDrawable (我支持API 8)将它分配给一个ImageView时,我用编程方式创建的一个ImageView遇到了一个问题。

这是我代码的缩写:

代码语言:javascript
复制
 mSequence = new AnimationDrawable();
 ImageView imageView = new ImageView(context);
 ImageView.setAdjustViewBounds(false);

我的所有资产都是本地保存的,所以我将它们添加到AnimationDrawable

代码语言:javascript
复制
for(String assetId : mAssets) {
    bitmap = loadBitmap(assetId); // returns a bitmap saved earlier
    if (bitmap != null) {
        mSequence.addFrame(new BitmapDrawable(res, bitmap), mFrameDuration);
    }
}

最后,我将AnimationDrawable分配给视图

代码语言:javascript
复制
if (mSequence.getNumberOfFrames() > 0) {
    imageView.setBackgroundDrawable(mSequence);
}

现在,在我有机会调用start()函数之前,只要加载了ImageView,动画就会启动。

我希望能够根据我自己的逻辑来控制动画何时开始。

有人发生过这种事吗?

**

编辑:

**

感谢Tom,我知道触发动画的原因是ImageView在分配AnimationDrawable后发生的可见性的变化。在我的例子中,解决方案并不简单,因为我有一个复杂的情况,但对于其他人来说,这可能更简单。

编辑2:

我回到根据类描述设置可绘制的背景,并引用如下:

创建逐帧动画的最简单方法是在XML文件中定义动画,放在res/drawable/文件夹中,并将其设置为背景为一个视图对象。然后,调用start()来运行动画。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-25 13:16:06

这很可能是因为您将它指定为一个可以用setBackgroundDrawable绘制的后台绘图--当您分配一个背景绘图时,对super.setVisibility的一系列调用最终出现在View中,而setVisible(..)可以触发一个动画。

解决方案是使用ImageDrawable?

下面是我是如何找到罪犯的。

至于为什么会这样,这可能是一个我无法解释的设计选择,尽管我能理解为什么--它标志着背景和图片之间的区别--也许前者在概念上有更长的寿命。(但那是一场格乌斯)。

如果您想要使用设置背景的方法,也许试着让您的ImageViews不可见,直到您想要显示动画。

票数 1
EN

Stack Overflow用户

发布于 2014-12-01 17:17:29

我知道这已经一年多了,但我会分享我的经验。

  • 我发现,停止动画的最简单方法是这样做: mImageView.setImageDrawable(mAnimationDrawable);mAnimationDrawable.stop();mAnimationDrawable.selectDrawable(0);

仅此而已。

这实际上停止了在索引0处可绘制的动画。不过,这是一种解决办法,但只需简单地增加两行即可。

票数 1
EN

Stack Overflow用户

发布于 2017-04-20 15:35:55

不幸的是,上述任何一个解决办法都解决了这个问题。我的解决办法是使用:

代码语言:javascript
复制
myView.setTranslationX(10000f); // to hide
myView.setTranslationX(0f); // to show
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17858462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档