作者tsaiminghan (nahgnimiast)
看板AndroidDev
标题[问题] out of memory?
时间Fri Dec 7 22:30:04 2012
我设定了全局的背景图,还有请多使用selector设定图片的按钮。
<relative layout
android:background="@drawable/bg" />
结果发生了out of memory的讯息,试过把上面这句拿掉
就不会发生错误。
上网查了之後,大多数都是在说bitmap要怎麽取之类的
问请有没有人知道要如何处理设写在xml的图档方法?
或是设定背景图有更好的方法?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.136.69.1
1F:推 sdyy:是不是你的背景图真的太大了? 还是你的selector灌太多图 12/07 22:57
2F:→ qweqweqweqwe:我觉得不完全是背景图的关系 背景图应该只是刚好 12/07 23:19
3F:→ qweqweqweqwe:踩到 OOM 的上限而已 也就是说可能要从别的地方改善 12/07 23:20
4F:推 givemepass:背景图太大,转个档就好 12/07 23:56
问一下我看如果动态设定backgroupd时,可以先转出比转小的bitmap再设给UI(原图
档比较大)
可以如果直接写在xml中,android会做这个动作吗?如果不会我想我需要全部用动态来写
看会不会改善。
开两个activity就吃掉30多M
背景图 800 x 1280,吃到记忆中是多少MB?
1bytes x 800 x 1280 还是 4bytes * 800 x 1280
※ 编辑: tsaiminghan 来自: 220.136.69.1 (12/08 00:57)
5F:→ qweqweqweqwe:google "eclipse MAT" 对於厘清mem 使用有点帮助 12/08 02:09
6F:推 foreverlyc:应该是你载入太多图,有使用到ListView或Gallery? 12/08 02:38
没用到,但是有背景图,和许多有selector的按钮,另外就是进入程式後
在oncreate有对一些View(有背景图)重新设定长宽(利用layoutparams动态计算新的大小)
查到一些资料,先试试看有没有用。
http://blog.csdn.net/micro_rat/article/details/6307067
http://www03.eyny.com/thread-8132236-1-1.html
http://www.myexception.cn/android/752138.html
http://www.linuxidc.com/Linux/2011-08/41274p2.htm
http://stackoverflow.com/questions/6092862/
will-calling-finish-from-an-activity-free-up-my-memory-space
http://stackoverflow.com/questions/5001682/
android-memory-management-in-activity-lifecycle
http://stackoverflow.com/questions/9248920/
drawables-resources-management-in-android
※ 编辑: tsaiminghan 来自: 220.136.69.1 (12/08 03:38)
7F:→ sdyy:你背景图太大了啦 12/08 11:42
增加一个网站,比较完整详细
http://my.oschina.net/ryanhoo/blog/93285
比上面简单,但是也蛮清楚的。
使用softrefence来取得bitmap
http://www.longerian.me/?p=28
将seletor由xml改用java code的方法 (seletor对应的是StateListDrawable)
http://stackoverflow.com/questions/11242735/
change-xml-selector-values-from-java-code
※ 编辑: tsaiminghan 来自: 220.136.49.29 (12/09 21:22)