title: Android imageview/addview outofmemory help?
body: <p><br>
  I am developing a simple comic book type app.<br>
  I am relatively new with creating Android apps, so please help me out.<br>
  What I coded is probably the wrong way to do this, but I wanted to be able to fling with finger left and right on
  the screen to go forward a page or back a page. The problem I am having is, after around 80-85 images the app will
  no longer run, I'm guessing due to out of memory? Any help would be most appreciated!
  Thank you
  (the part that is doing it I think is the fact that I am using:</p>
  
  <pre><code>viewFlipper = new ViewFlipper(this);
  ImageView i1 = new ImageView(this);
  i1.setImageResource(R.drawable.s1);
  viewFlipper.addView(i1);
  </code></pre>
  
  <p>and I have 120 images in my res/drawable folder...I am doing something wrong!</p>
  
  <pre><code>import android.app.Activity;
  import android.content.Intent;
  import android.net.Uri;
  import android.os.Bundle;
  import android.view.GestureDetector;
  import android.view.GestureDetector.SimpleOnGestureListener;
  import android.view.Menu;
  import android.view.MenuInflater;
  import android.view.MenuItem;
  import android.view.MotionEvent;
  import android.view.View;
  import android.view.animation.Animation;
  import android.view.animation.AnimationUtils;
  import android.widget.ImageView;
  import android.widget.ViewFlipper;
  
        private static final int SWIPE_MIN_DISTANCE = 120;
         private static final int SWIPE_MAX_OFF_PATH = 250;
         private static final int SWIPE_THRESHOLD_VELOCITY = 200;
         private GestureDetector gestureDetector;
         View.OnTouchListener gestureListener;
  
         private Animation slideLeftIn;
         private Animation slideLeftOut;
         private Animation slideRightIn;
         private Animation slideRightOut;
         private ViewFlipper viewFlipper;
  
      @Override
         public void onCreate(Bundle savedInstanceState) {
  
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);
  
             viewFlipper = new ViewFlipper(this);
             ImageView i1 = new ImageView(this);
             i1.setImageResource(R.drawable.s1);
             ImageView i2 = new ImageView(this);
             i2.setImageResource(R.drawable.s2);
             ImageView i3 = new ImageView(this);
             i3.setImageResource(R.drawable.s3);
             ImageView i4 = new ImageView(this);
             i4.setImageResource(R.drawable.s4);
             ImageView i5 = new ImageView(this);
             i5.setImageResource(R.drawable.s5);
             ImageView i6 = new ImageView(this);
             i6.setImageResource(R.drawable.s6);
             ImageView i7 = new ImageView(this);
             i7.setImageResource(R.drawable.s7);
             ImageView i8 = new ImageView(this);
             i8.setImageResource(R.drawable.s8);
             ImageView i9 = new ImageView(this);
             i9.setImageResource(R.drawable.s9);
             ImageView i10 = new ImageView(this);
             i10.setImageResource(R.drawable.s10);
             ImageView i11 = new ImageView(this);
             i11.setImageResource(R.drawable.s11);
             ImageView i12 = new ImageView(this);
             i12.setImageResource(R.drawable.s12);
             ImageView i13 = new ImageView(this);
             i13.setImageResource(R.drawable.s13);
             ImageView i14 = new ImageView(this);
             i14.setImageResource(R.drawable.s14);
             ImageView i15 = new ImageView(this);
             i15.setImageResource(R.drawable.s15);
             ImageView i16 = new ImageView(this);
             i16.setImageResource(R.drawable.s16);
             ImageView i17 = new ImageView(this);
             i17.setImageResource(R.drawable.s17);
             ImageView i18 = new ImageView(this);
             i18.setImageResource(R.drawable.s18);
             ImageView i19 = new ImageView(this);
             i19.setImageResource(R.drawable.s19);
             ImageView i20 = new ImageView(this);
             i20.setImageResource(R.drawable.s20);
             ImageView i21 = new ImageView(this);
             i21.setImageResource(R.drawable.s21);
             ImageView i22 = new ImageView(this);
             i22.setImageResource(R.drawable.s22);
             ImageView i23 = new ImageView(this);
             i23.setImageResource(R.drawable.s23);
             ImageView i24 = new ImageView(this);
             i24.setImageResource(R.drawable.s24);
             ImageView i25 = new ImageView(this);
             i25.setImageResource(R.drawable.s25);
             ImageView i26 = new ImageView(this);
             i26.setImageResource(R.drawable.s26);
             ImageView i27 = new ImageView(this);
             i27.setImageResource(R.drawable.s27);
             ImageView i28 = new ImageView(this);
             i28.setImageResource(R.drawable.s28);
             ImageView i29 = new ImageView(this);
             i29.setImageResource(R.drawable.s29);
             ImageView i30 = new ImageView(this);
             i30.setImageResource(R.drawable.s30);
             ImageView i31 = new ImageView(this);
             i31.setImageResource(R.drawable.s31);
             ImageView i32 = new ImageView(this);
             i32.setImageResource(R.drawable.s32);
             ImageView i33 = new ImageView(this);
             i33.setImageResource(R.drawable.s33);
             ImageView i34 = new ImageView(this);
             i34.setImageResource(R.drawable.s34);
             ImageView i35 = new ImageView(this);
             i35.setImageResource(R.drawable.s35);
             ImageView i36 = new ImageView(this);
             i36.setImageResource(R.drawable.s36);
             ImageView i37 = new ImageView(this);
             i37.setImageResource(R.drawable.s37);
             ImageView i38 = new ImageView(this);
             i38.setImageResource(R.drawable.s38);
             ImageView i39 = new ImageView(this);
             i39.setImageResource(R.drawable.s39);
             ImageView i40 = new ImageView(this);
             i40.setImageResource(R.drawable.s40);
             ImageView i41 = new ImageView(this);
             i41.setImageResource(R.drawable.s41);
             ImageView i42 = new ImageView(this);
             i42.setImageResource(R.drawable.s42);
             ImageView i43 = new ImageView(this);
             i43.setImageResource(R.drawable.s43);
             ImageView i44 = new ImageView(this);
             i44.setImageResource(R.drawable.s44);
             ImageView i45 = new ImageView(this);
             i45.setImageResource(R.drawable.s45);
             ImageView i46 = new ImageView(this);
             i46.setImageResource(R.drawable.s46);
             ImageView i47 = new ImageView(this);
             i47.setImageResource(R.drawable.s47);
             ImageView i48 = new ImageView(this);
             i48.setImageResource(R.drawable.s48);
             ImageView i49 = new ImageView(this);
             i49.setImageResource(R.drawable.s49);
             ImageView i50 = new ImageView(this);
             i50.setImageResource(R.drawable.s50);
             ImageView i51 = new ImageView(this);
             i51.setImageResource(R.drawable.s51);
             ImageView i52 = new ImageView(this);
             i52.setImageResource(R.drawable.s52);
             ImageView i53 = new ImageView(this);
             i53.setImageResource(R.drawable.s53);
             ImageView i54 = new ImageView(this);
             i54.setImageResource(R.drawable.s54);
             ImageView i55 = new ImageView(this);
             i55.setImageResource(R.drawable.s55);
             ImageView i56 = new ImageView(this);
             i56.setImageResource(R.drawable.s56);
             ImageView i57 = new ImageView(this);
             i57.setImageResource(R.drawable.s57);
             ImageView i58 = new ImageView(this);
             i58.setImageResource(R.drawable.s58);
             ImageView i59 = new ImageView(this);
             i59.setImageResource(R.drawable.s59);
             ImageView i60 = new ImageView(this);
             i60.setImageResource(R.drawable.s60);
             ImageView i61 = new ImageView(this);
             i61.setImageResource(R.drawable.s61);
             ImageView i62 = new ImageView(this);
             i62.setImageResource(R.drawable.s62);
             ImageView i63 = new ImageView(this);
             i63.setImageResource(R.drawable.s63);
             ImageView i64 = new ImageView(this);
             i64.setImageResource(R.drawable.s64);
             ImageView i65 = new ImageView(this);
             i65.setImageResource(R.drawable.s65);
             ImageView i66 = new ImageView(this);
             i66.setImageResource(R.drawable.s66);
             ImageView i67 = new ImageView(this);
             i67.setImageResource(R.drawable.s67);
             ImageView i68 = new ImageView(this);
             i68.setImageResource(R.drawable.s68);
             ImageView i69 = new ImageView(this);
             i69.setImageResource(R.drawable.s69);
             ImageView i70 = new ImageView(this);
             i70.setImageResource(R.drawable.s70);
             ImageView i71 = new ImageView(this);
             i71.setImageResource(R.drawable.s71);
             ImageView i72 = new ImageView(this);
             i72.setImageResource(R.drawable.s72);
             ImageView i73 = new ImageView(this);
             i73.setImageResource(R.drawable.s73);
             ImageView i74 = new ImageView(this);
             i74.setImageResource(R.drawable.s74);
             ImageView i75 = new ImageView(this);
             i75.setImageResource(R.drawable.s75);
             ImageView i76 = new ImageView(this);
             i76.setImageResource(R.drawable.s76);
             ImageView i77 = new ImageView(this);
             i77.setImageResource(R.drawable.s77);
             ImageView i78 = new ImageView(this);
             i78.setImageResource(R.drawable.s78);
             ImageView i79 = new ImageView(this);
             i79.setImageResource(R.drawable.s79);
             ImageView i80 = new ImageView(this);
             i80.setImageResource(R.drawable.s80);
             ImageView i81 = new ImageView(this);
             i81.setImageResource(R.drawable.s81);
             ImageView i82 = new ImageView(this);
             i82.setImageResource(R.drawable.s82);
             ImageView i83 = new ImageView(this);
             i83.setImageResource(R.drawable.s83);
             ImageView i84 = new ImageView(this);
             i84.setImageResource(R.drawable.s84);
             ImageView i85 = new ImageView(this);
             i85.setImageResource(R.drawable.s85);
             ImageView i86 = new ImageView(this);
             i86.setImageResource(R.drawable.s86);
  
  
             viewFlipper.addView(i1);
  
             viewFlipper.addView(i2);
  
             viewFlipper.addView(i3);
  
             viewFlipper.addView(i4);
  
             viewFlipper.addView(i5);
  
             viewFlipper.addView(i6);
  
             viewFlipper.addView(i7);
  
             viewFlipper.addView(i8);
  
             viewFlipper.addView(i9);
  
             viewFlipper.addView(i10);
  
             viewFlipper.addView(i11);
  
             viewFlipper.addView(i12);
  
             viewFlipper.addView(i13);
  
             viewFlipper.addView(i14);
  
             viewFlipper.addView(i15);
  
             viewFlipper.addView(i16);
  
             viewFlipper.addView(i17);
  
             viewFlipper.addView(i18);
  
             viewFlipper.addView(i19);
  
             viewFlipper.addView(i20);
  
             viewFlipper.addView(i21);
  
             viewFlipper.addView(i22);
  
             viewFlipper.addView(i23);
  
             viewFlipper.addView(i24);
  
             viewFlipper.addView(i25);
  
             viewFlipper.addView(i26);
  
             viewFlipper.addView(i27);
  
             viewFlipper.addView(i28);
  
             viewFlipper.addView(i29);
  
             viewFlipper.addView(i30);
  
             viewFlipper.addView(i31);
  
             viewFlipper.addView(i32);
  
             viewFlipper.addView(i33);
  
             viewFlipper.addView(i34);
  
             viewFlipper.addView(i35);
  
             viewFlipper.addView(i36);
  
             viewFlipper.addView(i37);
  
             viewFlipper.addView(i38);
  
             viewFlipper.addView(i39);
  
             viewFlipper.addView(i40);
  
             viewFlipper.addView(i41);
  
             viewFlipper.addView(i42);
  
             viewFlipper.addView(i43);
  
             viewFlipper.addView(i44);
  
             viewFlipper.addView(i45);
  
             viewFlipper.addView(i46);
  
             viewFlipper.addView(i47);
  
             viewFlipper.addView(i48);
  
             viewFlipper.addView(i49);
  
             viewFlipper.addView(i50);
  
             viewFlipper.addView(i51);
  
             viewFlipper.addView(i52);
  
             viewFlipper.addView(i53);
  
             viewFlipper.addView(i54);
  
             viewFlipper.addView(i55);
  
             viewFlipper.addView(i56);
  
             viewFlipper.addView(i57);
  
             viewFlipper.addView(i58);
  
             viewFlipper.addView(i59);
  
             viewFlipper.addView(i60);
  
             viewFlipper.addView(i61);
  
             viewFlipper.addView(i62);
  
             viewFlipper.addView(i63);
  
             viewFlipper.addView(i64);
  
             viewFlipper.addView(i65);
  
             viewFlipper.addView(i66);
  
             viewFlipper.addView(i67);
  
             viewFlipper.addView(i68);
  
             viewFlipper.addView(i69);
  
             viewFlipper.addView(i70);
  
             viewFlipper.addView(i71);
  
             viewFlipper.addView(i72);
  
             viewFlipper.addView(i73);
  
             viewFlipper.addView(i74);
  
             viewFlipper.addView(i75);
  
             viewFlipper.addView(i76);
  
             viewFlipper.addView(i77);
  
             viewFlipper.addView(i78);
  
             viewFlipper.addView(i79);
  
             viewFlipper.addView(i80);
  
             viewFlipper.addView(i81);
  
             viewFlipper.addView(i82);
  
             viewFlipper.addView(i83);
  
             viewFlipper.addView(i84);
  
             viewFlipper.addView(i85);
  
             viewFlipper.addView(i86);
  
  
  
  
  
  
  
             //set up animations
             slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in);
             slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out);
             slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in);
             slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);
             //put up a brownie as a starter
             setContentView(viewFlipper);
             gestureDetector = new GestureDetector(new MyGestureDetector());
         }
  
         private void recycle() {
           // TODO Auto-generated method stub
        }
  
        public class MyGestureDetector extends SimpleOnGestureListener {
             @Override
             public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
                 try {
                     if (Math.abs(e1.getY() - e2.getY()) &gt; SWIPE_MAX_OFF_PATH)
                         return false;
                     // right to left swipe
                     if(e1.getX() - e2.getX() &gt; SWIPE_MIN_DISTANCE &amp;&amp; Math.abs(velocityX) &gt; SWIPE_THRESHOLD_VELOCITY) {
  
                         viewFlipper.setInAnimation(slideLeftIn);
                         viewFlipper.setOutAnimation(slideLeftOut);
                         viewFlipper.showNext();
                         setContentView(viewFlipper);
                     } // left to right swipe
                     else if (e2.getX() - e1.getX() &gt; SWIPE_MIN_DISTANCE &amp;&amp; Math.abs(velocityX) &gt; SWIPE_THRESHOLD_VELOCITY) {
  
                         viewFlipper.setInAnimation(slideRightIn);
                         viewFlipper.setOutAnimation(slideRightOut);
                         viewFlipper.showPrevious();
                         setContentView(viewFlipper);
  
                     }
                 } catch (Exception e) {
                     // nothing
                 }
                 return false;
             }
  
  
              // TODO Auto-generated method stub
  
           }
  
  
  
         @Override
         public boolean onTouchEvent(MotionEvent event) {
             if (gestureDetector.onTouchEvent(event)){
  
                 return true;
             }
             else{
                 return false;
             }
         }
           // TODO Auto-generated method stub
  
        }
  </code></pre>