我遇到了内存问题,我认为这可能与创建大型位图有关。
手头的任务是获取一个相当小的平铺图像并创建一个较大的平铺图像并将其设置为手机壁纸。我这样做的方式是:
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) 和我试过的其他手机上运行良好。但是我收到了与此问题相关的错误报告。我试图通过将所需尺寸加倍来重现问题,当 View 被绘制到位图时,问题似乎发生在第 4 步:
ERROR/dalvikvm-heap(124): Heap Massage needed (7372800-byte external allocation too big)
我不确定如何解决这个问题。请帮忙! 谢谢
最佳答案
我相信你已经想到了,但是:你包括了吗
<uses-permission android:name="android.permission.SET_WALLPAPER" />
在您的 list 文件中?
你确定没有抛出异常?显示 Toast 可能有问题。
关于android - Dealing with Large Bitmaps(平铺小位图来创建墙纸),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4022860/