【发布时间】: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