在某些手机(特别是三星)中,应用程序会出现OutOfMemory错误。
我使用带有4个ImageView的ViewFlipper,它们会在教程中显示。
我发现无法纠正错误或回收图片视图。
这是管理ViewFlipper的方法:
results?.eachWithIndex { output, i->
if (i>0) {
sb.append(" or ")
}
sb.append(" ((dbres.Field like (:myVariablesA${i})) or (dbres.Field like (:myVariablesB${i})) or (dbres.Field like (:myVariablesC${i})) or dbres.Field=:myVariable${i})")
//capture within csv so aa,val,bb
myParams."myVariablesA${i}"='%,'+output+',%'
//capture as last element: aa,val
myParams."myVariablesB${i}"='%,'+output
//capture it as first element val,aa
myParams."myVariablesC${i}"=output+',%'
//finally capture it if its not a csv and its a physical set value
myParams."myVariable${i}"=output
}
每次在ViewPager中更改页面时都会调用该方法。
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;
}
}
如果有任何想法,请帮助我,提前致谢。
答案 0 :(得分:2)
为此你需要使用Image loader库来加载图像。 您可以使用:
此库用于位图内存管理,使用此库后,您没有遇到OutOfMemoryError异常。