回收 ImageViews 以避免 OutOfMemoryError

Recycle ImageViews to avoid OutOfMemoryError

在某些手机(尤其是三星手机)中,应用程序会出现 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());
}

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

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

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

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