我有内存问题,并认为它可能与创建大型位图有关.
手头的任务是获得一个相当小的平铺图像并创建一个更大的平铺图像并将其设置为手机壁纸.我这样做的方式是:
1) Create a view that is 2 * screen width, 1 * screen height
2) Set the view background to a BitmapDrawable with the tile mode set to repeat
3) Create a bitmap with the views dimensions
4) draw the view to the bitmap by: view.draw(new Canvas(bitmap))
5) set wallpper: getApplicationContext().setWallpaper(bitmap)
这在我的手机(HTC Magic)和我试过的其他手机上运行良好.但我收到有关此问题的错误报告.我试图通过加倍所需的维度来重新创建问题,并且当视图被绘制到位图时,问题似乎发生在第4步:
ERROR/dalvikvm-heap(124): Heap Massage needed (7372800-byte external allocation too big)
我不知道如何解决这个问题.请帮忙!
谢谢
解决方法:
我相信你已经想到了,但不过:你有没有
<uses-permission android:name="android.permission.SET_WALLPAPER" />
在您的清单文件中?