android – 处理大型位图(平铺一个小位图来创建壁纸)

我有内存问题,并认为它可能与创建大型位图有关.

手头的任务是获得一个相当小的平铺图像并创建一个更大的平铺图像并将其设置为手机壁纸.我这样做的方式是:

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" />

在您的清单文件中?

你确定没有抛出异常吗?显示Toast可能是一个问题.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...