返回信息流小白在做app的进入时的动画时遇到了这个问题,而且好像和设备相关,在自己的手机上(4.0.4)上跑着没有问题,但是用了舍友的手机(4.1和4.3)程序就直接崩溃了
主要功能就是用drawable下的75张图片帧组成一个开机动画
核心的代码如下:
AnimationDrawable anim = new AnimationDrawable();
for (int i = 0; i <=74 ; i++) {
//根据资源名称和目录获取R.java中对应的资源ID
int id = getResources().getIdentifier("img" + i, "drawable", getPackageName());
drawable = getResources().getDrawable(id);
anim.addFrame(drawable, 40);
}
anim.setOneShot(true); //设置为loop
image.setBackgroundDrawable(anim); //将动画设置为ImageView背景
anim.start(); //开始动画
然后在drawable = getResources().getDrawable(id); 这行,舍友的手机(们)OOM了
去网上查过写资料,比如drawable.setCallback(null),之类的,感觉没效果,求大神帮助
最后是这段代码的来源:http://blog.csdn.net/liuhe688/article/details/6657776
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #18348同步于 2014/12/8
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖
使用Drawable导致了OOM问题
Lamperouge
2014/12/8镜像同步19 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
我没看代码哈,我就是说OOM的原因有太多
版本、内存、屏幕分辨率,图片是什么都有关系
【 在 Lamperouge ([若晨团]|取个名字也麻烦|Lz的京东狗) 的大作中提到: 】
: 噢,这个定义忘了给了,就是一个Drawable对象
[ema1]
【 在 icyfox 的大作中提到: 】
: 我没看代码哈,我就是说OOM的原因有太多
: 版本、内存、屏幕分辨率,图片是什么都有关系
:
在自己的手机上没问题,到别人的手机上就GG了
【 在 xlover 的大作中提到: 】
: ORZ 看这代码貌似一次加载几十张图的节奏。。。这绝壁得崩啊
【 在 Lamperouge 的大作中提到: 】
: 在自己的手机上没问题,到别人的手机上就GG了
你用DDMS看看,我估计一开始这动画,内存就得飙到50M
请问学长,有什么好的办法么?我网上找了很多方法都解决不了= = 说的什么分布加载也每个具体例子= =
【 在 xlover 的大作中提到: 】
: 你用DDMS看看,我估计一开始这动画,内存就得飙到50M