2012-01-12 140 views
0

我已经创建了一个简单的图像滑块“动态壁纸”,它将在DoubleTap中调用图像。我知道在处理图像时存在许多不同的OOM问题,因为Android系统必须将图像转换为BMP,这实质上增加了图像大小。动态壁纸预览模式

我的问题是,当我从动态壁纸菜单屏幕激活动态壁纸,并在预览模式下查看它,它完美的作品。我能够浏览我的所有图像,没有任何滞后或问题。但是,当我去设置动态壁纸时,它会崩溃并出现OOM错误。任何理由为什么这可能是?

回答

1

预览模式在不透明的表面上绘制,而您的桌面在其上绘制图标,更新和动画。

您是否优化了图形?如果你使用jpg/png,这可能会有一些帮助,比如http://trimage.org

+0

我所有的图形都是通过Photoshop中的“Save For Web”优化的。我使用的是960x800图像,对于大多数hdpi和xhdpi屏幕密度sans平板电脑来说似乎都很有用。每张图片的文件大小大约为150-250kb。不过,我的印象是,无论文件大小如何,图像的分辨率决定了Android系统将其转换为BMP后的实际文件大小。这个过程通常会将图像打印到1-2mb,而这个大小相当大。无论如何,感谢您的帮助! – rdebits 2012-01-12 18:29:50

+0

等一下。哪些设备会失败?也许你需要适应为不同设备提供不同的资源。这将不可避免地增加APK的大小,但会提高问题设备的性能。 http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources ALSO,http://photobatch.stani.be/可以帮助您批量转换为各自的DPI和解决方案。 – TryTryAgain 2012-01-12 18:36:17

+0

对于HDPI,我使用的是960x800。 MDPI @ 720x600。 LDPI图像@ 480x400。然而,当我去SET动态壁纸时,我得到了这个错误的一个变种:E/dalvikvm-heap(15936):682240字节的外部分配对于这个过程来说太大了。 E/dalvikvm(15936):内存不足:堆大小= 4499KB,分配的= 2555KB,位图大小= 11606KB,限制= 13756KB E/dalvikvm(15936):修剪信息:足迹= 2883KB,允许的足迹= 4867KB,修正= 368KB 01-12 12:01:15.896:E/GraphicsJNI(15936):VM不会让我们分配682240字节 – rdebits 2012-01-12 19:02:07