【问题标题】:Recycle ImageViews to avoid OutOfMemoryError回收 ImageViews 以避免 OutOfMemoryError
【发布时间】:2016-04-01 10:40:29
【问题描述】:

在某些手机(尤其是三星手机)中,应用程序会出现 OutOfMemory 错误。

我使用带有 4 个 ImageView 的 ViewFlipper,它们在教程中显示。

我没有找到解决错误或回收图像视图的方法。

这是管理 ViewFlipper 的方法:

private void changeBackground(int position) {

    switch (position) {

        case 1:
            mViewFlipper.setDisplayedChild(1);
            mViewFlipper.setInAnimation(getActivity(), R.anim.anim_clockwise_onboarding);
            mViewFlipper.setOutAnimation(getActivity(), R.anim.anim_clockwise_inverse_onboarding);
            break;

        case 2:
            mViewFlipper.setDisplayedChild(2);
            mViewFlipper.setInAnimation(getActivity(), R.anim.anim_clockwise_onboarding);
            mViewFlipper.setOutAnimation(getActivity(), R.anim.anim_clockwise_inverse_onboarding);
            break;

        case 3:
            mViewFlipper.setDisplayedChild(3);
            mViewFlipper.setInAnimation(getActivity(), R.anim.anim_clockwise_onboarding);
            mViewFlipper.setOutAnimation(getActivity(), R.anim.anim_clockwise_inverse_onboarding);
            break;

        default:
            mViewFlipper.setDisplayedChild(0);
            mViewFlipper.setInAnimation(getActivity(), R.anim.anim_clockwise_onboarding);
            mViewFlipper.setOutAnimation(getActivity(), R.anim.anim_clockwise_inverse_onboarding);
            break;

    }

}

每次更改 ViewPager 中的页面时都会调用该方法。

@Override
public void onPageSelected(int position) {
       changeBackground(mViewPager.getCurrentItem());
}

如果有任何想法请帮助我,在此先感谢。

【问题讨论】:

  • 你有你正在使用的图片样本吗?如果您只使用 4 张图片,它们可能非常庞大,可以进行采样。
  • 图片占用 65kb 和 750x1330
  • 图像在磁盘上的大小可能为 65kb,但解码后可能会更大。如果您将这些图像采样到 75x133 以进行测试,会发生什么情况?
  • @Knossos 我解决了使用 Glide 加载图像的问题!我也尝试您的选择以备将来使用。非常感谢!

标签: java android imageview out-of-memory android-imageview


【解决方案1】:

为此,您需要使用图像加载器库来加载图像。 您可以使用:

  1. 通用图像加载器
  2. 毕加索
  3. 滑翔

此库用于位图内存管理,使用此库后您不会遇到 OutOfMemoryError 异常。

【讨论】:

  • 我通常使用 Glide,但在这种情况下必须预加载,因为我没有想到这一点。我要试试:)
  • 尝试通用图像加载器并检查它。
  • 与 Glide 完美结合!谢谢你让我大开眼界! :D
猜你喜欢
  • 2018-01-11
  • 2017-03-20
  • 2018-08-27
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多