内存问题 - 在水平线性布局中添加许多相同的按钮(在scrollview中)

时间:2012-11-25 07:44:30

标签: android memory

我需要一个水平滚动视图。由于ListView是垂直的,我在Horizo​​ntalScrollView中使用Horizo​​ntal LinearLayout。

它会在线性布局中添加许多相同的按钮。要添加的按钮数量取决于服务器端的数据。每个按钮都具有相同的图像背景和不同的按钮文本。我用了

button.setImageBackground(R.drawable.img);
linearlayout.addview(button) 

添加每个新按钮。 最后,我得到了内存错误如下:

  

E / dalvikvm-heap(701):此过程的4096字节外部分配太大。

     

W / OSMemory(701):拒绝外部分配4096字节

     

W / NioWorker(701):选择器循环中出现意外异常。

     

W / NioWorker(701):java.lang.OutOfMemoryError

     

W / NioWorker(701):org.apache.harmony.luni.platform.OSMemory.malloc(原生方法)

     

W / NioWorker(701):at org.apache.harmony.luni.platform.PlatformAddressFactory.alloc(PlatformAddressFactory.java:150)

     

W / NioWorker(701):at java.nio.DirectByteBuffer。(DirectByteBuffer.java:66)

     

W / NioWorker(701):at java.nio.ReadWriteDirectByteBuffer。(ReadWriteDirectByteBuffer.java:51)

     

W / NioWorker(701):at java.nio.BufferFactory.newDirectByteBuffer(BufferFactory.java:93)

     

W / NioWorker(701):at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:68)

     

W / NioWorker(701):org.jboss.netty.channel.socket.nio.SocketReceiveBufferPool.acquire(SocketReceiveBufferPool.java:61)

     

W / NioWorker(701):org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:321)

     

W / NioWorker(701):org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:282)

     

W / NioWorker(701):org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:202)

     

W / NioWorker(701):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)

     

W / NioWorker(701):at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:561)

     

W / NioWorker(701):at java.lang.Thread.run(Thread.java:1096)

有谁知道如何解决这个问题?

0 个答案:

没有答案