一部の電話(特にSamsung)では、アプリケーションがOutOfMemoryのエラーを返します。Recycle ImageViewsを避けるOutOfMemoryError
私はチュートリアルで示されている4つのImageViewsを持つ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枚の画像しか使用していない場合、それらはおそらく巨大であり、サンプリングされる可能性があります。 – Knossos
イメージは65kbと750x1330をとります – dpulgarin
イメージはディスク上に65kbですが、一度解読されるとかなり大きくなる可能性があります。テスト目的で75x133というイメージをサンプリングするとどうなりますか? – Knossos