目前我的应用程序中有一个画廊,上面有大约 8 张图片。在我有一个错误之前,它会因为堆过载而导致它崩溃(类似的东西,不确定)。
这是因为我的图片文件太大,所以我把它们缩小了。所以我的主要问题是我实际上可以在我的应用程序中放入多少张图片。
我希望有大约 5 个屏幕(活动)和一些滚动图片我不想开始更改我的应用程序,如果它再次崩溃
也有人知道如何在滚动图片时添加过渡,因为它看起来太花哨了
目前我的应用程序中有一个画廊,上面有大约 8 张图片。在我有一个错误之前,它会因为堆过载而导致它崩溃(类似的东西,不确定)。
这是因为我的图片文件太大,所以我把它们缩小了。所以我的主要问题是我实际上可以在我的应用程序中放入多少张图片。
我希望有大约 5 个屏幕(活动)和一些滚动图片我不想开始更改我的应用程序,如果它再次崩溃
也有人知道如何在滚动图片时添加过渡,因为它看起来太花哨了
一切都取决于您管理图片的方式。为了节省内存(并增加加载的图像数量),您应该加载调整大小的图片。
您可以在加载时对图片进行二次采样:
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inSampleSize = 2;
BitmapFactory.decodeResource(res, id, opts);
这将加载一张按其原始大小缩放 1/2 的图片(请记住,二次采样仅适用于 2 值的幂)。您可以加载比将要显示的区域更小的图片并让其ImageView
放大。
如果您加载的图像仍然太大,您可以使用Bitmap.createScaledBitmap()
.
您应该知道,Honeycomb 之前的 Android 不会像 Honeycomb 之后的 Android 那样回收位图。您应该Bitmap.recycle()
在不再使用位图后立即调用以清除内存。
对于图像滚动,您可以使用ViewPager
.
进一步阅读:http: //developer.android.com/training/displaying-bitmaps/index.html
您可以在应用中包含的图片数量没有严格限制。以图库应用程序为例,我认为自己是一个相对较轻的拍照者,但我的图库中仍然有数百张图像。如果您遵循位图最佳实践,您应该不会遇到任何内存问题,并且您应该能够包含任意数量的图像。