我正在制作漫画类型的项目(用户可以滑动大约150页),我需要为每个页面加载大分辨率图像。但是对我来说缩小这些位图不是一个选项,因为如果缩小这些图像,用户可以放大这些页面,如果用户放大则看起来很糟糕。
如果在某些设备应用程序崩溃中执行期间达到35MB限制,我还检查了我的堆大小。
请建议在这种情况下我该怎么做。
答案 0 :(得分:1)
为大堆大小配置应用,Android会为您的应用分配额外的15-30%RAM,具体取决于设备:
<application ..............
android:largeHeap="true" <---------------
android:label="string resource"
将图片加载活动配置为在专用流程中运行 大约是您的应用程序可用的RAM内存量的两倍 允许您投入大部分的ImageActivityProcess&#39;内存到图像加载逻辑:
<activity android:name=".ImageActivity"
android:label="@string/app_name"
android:process=":ImageActivityProcess"> <----------
</activity>
我的猜测仍然是所有这些都会延迟而不是解决你的问题。移动设备 根本没有调整加载多个大图像。请记住,在大多数Android设备上,从像素大小到内存大小的 3-4因素,即4 MPix图像需要12-16 MB的RAM块。
再次考虑您的图像加载架构。考虑例如将缩小尺寸的图像加载到滚动条中,并且仅当用户单击图像或发出缩放命令时 - 加载完整比例位图。这就是我要做的事情