我有一个问题AnimationDrawable
,我以编程方式创建它,一旦我将它分配给一个ImageView
via imageView.setBackgroundDrawable
(我支持 API 8)就开始了。
这是我的代码的缩写:
mSequence = new AnimationDrawable();
ImageView imageView = new ImageView(context);
ImageView.setAdjustViewBounds(false);
我所有的资产都保存在本地,所以我将它们添加到AnimationDrawable
for(String assetId : mAssets) {
bitmap = loadBitmap(assetId); // returns a bitmap saved earlier
if (bitmap != null) {
mSequence.addFrame(new BitmapDrawable(res, bitmap), mFrameDuration);
}
}
最后我分配AnimationDrawable
给视图
if (mSequence.getNumberOfFrames() > 0) {
imageView.setBackgroundDrawable(mSequence);
}
现在,在我有机会调用该start()
函数之前,动画会在ImageView
加载后立即开始。
我希望能够根据我自己的逻辑控制动画何时开始。
这发生在任何人身上吗?
**
编辑:
**
感谢 Tom,我知道触发动画的原因是ImageView
在分配AnimationDrawable
. 在我的情况下,解决方案并非微不足道,因为我的情况很复杂,但对其他人来说可能更简单。
编辑2:
我回到根据类描述将drawable设置为背景,我引用:
创建逐帧动画的最简单方法是在 XML 文件中定义动画,放在 res/drawable/ 文件夹中,并将其设置为View 对象的背景。然后,调用 start() 运行动画。