回收 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());
}
如果有任何想法请帮助我,在此先感谢。
为此,您需要使用图像加载器库来加载图像。
您可以使用:
- 通用图像加载器
- 毕加索
- 滑行
此库用于位图内存管理,使用此库后您不会遇到 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());
}
如果有任何想法请帮助我,在此先感谢。
为此,您需要使用图像加载器库来加载图像。 您可以使用:
- 通用图像加载器
- 毕加索
- 滑行
此库用于位图内存管理,使用此库后您不会遇到 OutOfMemoryError 异常。