- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我现在正在编写一个应用程序,它使用占据大部分屏幕的四个主要按钮。每个都有三个动画:一个 12 帧的介绍动画、一个 33 帧的循环动画和一个基于当前帧关闭循环的动画。
图像高度在 250 250 到 450 250 左右。在应用程序加载时加载所有这些已证明不仅会导致初始加载缓慢,还会导致可用内存较小的设备出现内存不足异常。
问题是,当我尝试加载动画而不预加载它们时,它会在加载之前跳过并挂起一秒钟。此外,我注意到,即使只是在每次点击监听器需要 Activity 动画时运行 Activity 动画,内存使用量似乎也在 20mb 到 40mb 堆大小之间。
我并没有真正做任何奇怪的事情来实现它们。我用的是标准
AnimationDrawable animation = (AnimationDrawable)getResources().getDrawable(R.drawable.blah);
imageView.setImageDrawable(animation);
animation start;
但是在没有预加载的情况下根据需要加载单个动画会造成轻微的延迟。有没有办法预加载它们(如果这有意义的话)或根据我如何在代码中实现它们做其他事情?我目前正致力于将动画分成不同的部分,因此唯一改变的帧是动画对象的实际部分。
除此之外,我还能如何处理 AnimationDrawable 和内存?动画似乎是 Android 的基础,必须有更好、更专业的方式来处理动画资源,这样它们才不会破坏内存库并且仍然流畅。请让我知道我这样做很愚蠢。我应该使用不同的动画类,还是应该根据计时器手动将更改分配给动画 View 以便我一次加载一个?
我想这是一个有点麻烦的问题 - 似乎必须有一种处理此类问题的标准方法。帧数少?不同格式的图像? (jpg 和 png 是一样的)
最佳答案
你可以做几件事来最小化内存消耗。
避免碰撞
关于java - 如何在不耗尽内存或使用非常小的图像的情况下加载多个 AnimationDrawables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16932268/
我是一名优秀的程序员,十分优秀!