【问题标题】:How many pictures can i put in my app?我可以在我的应用程序中放置多少张图片?
【发布时间】:2013-09-11 12:34:03
【问题描述】:

目前,我的应用中有一个图库,上面有大约 8 张图片。在我遇到一个错误之前,它会因为 Heap 过载而崩溃(类似的东西,不确定)。

这是因为我的图片文件太大,所以我把它们缩小了。所以我的主要问题是我实际上可以在我的应用中放入多少张图片。

我希望有大约 5 个屏幕(活动)和一些滚动图片 如果它再次崩溃,我不想开始更改我的应用程序

还有谁知道如何在滚动图片时添加过渡,因为它看起来太花哨了

【问题讨论】:

  • 关于您的第一个问题,您可以将图像存储在服务器端并每次通过您的应用程序访问它们或下载它们并将它们保存在 sdcard 上,对于您的第二个问题,您是否检查了 Viewpager?

标签: android image heap-memory gallery slideshow


【解决方案1】:

一切都取决于您管理图片的方式。为了节省内存(并增加加载的图像数量),您应该加载调整大小的图片。

您可以在加载时对图片进行二次采样:

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

【讨论】:

    【解决方案2】:

    您的应用中可以包含的图片数量没有严格限制。以图库应用程序为例,我认为自己是一个相对较轻的拍照者,但我的图库中仍然有数百张图像。如果您关注Bitmap best practices,您应该不会遇到任何内存问题,并且您应该能够包含任意数量的图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-05
      • 2014-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      • 2011-07-13
      相关资源
      最近更新 更多