title: Android setBackgroundResource cause out of memory excepiton
body: <p>I'm working on a gamebook application that shows 12 views in a ViewPager.
  This is my custom PagerAdapter :</p>
  
  <pre><code>private class ImagePagerAdapter extends PagerAdapter {
  
      private int[] mImages = new int[] { R.drawable.copertinai,
              R.drawable.blui, R.drawable.azzurroi, R.drawable.rossoi,
              R.drawable.gialloi, R.drawable.verdei, R.drawable.rosai,
              R.drawable.grigioi, R.drawable.neroi, R.drawable.arancionei,
              R.drawable.marronei, R.drawable.violai, R.drawable.ulm };
  
      @Override
      public int getCount() {
          return mImages.length;
      }
  
      @Override
      public boolean isViewFromObject(View view, Object object) {
          return view == ((RelativeLayout) object);
      }
  
      @Override
      public Object instantiateItem(ViewGroup container, int position) {
          Context context = MainActivity.this;
          RelativeLayout relLayImageView = new RelativeLayout(context);
          relLayImageView.setBackgroundResource(mImages[position]);
  
          ((ViewPager) container).addView(relLayImageView, new LayoutParams(
                  LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
          return relLayImageView;
      }
  
      @Override
      public void destroyItem(ViewGroup container, int position, Object object) {
          ((ViewPager) container).removeView((RelativeLayout) object);
          object=null; 
          System.gc();
      }
  }
  </code></pre>
  
  <p>In some devices it cause an out of memory exceptionr randomly when this line of code is called</p>
  
  <pre><code>relLayImageView.setBackgroundResource(mImages[position]);
  </code></pre>
  
  <p>But in all devices I see something like this in the logcat when i turn pages:</p>
  
  <pre><code>12-31 00:25:31.655: I/dalvikvm-heap(9767): Grow heap (frag case) to 50.875MB for 10384016-byte allocation
  </code></pre>
  
  <p>The app also crashes in some devices for the same problem when in another Activity I set different background resource to the main layout based on user action. Here the code: </p>
  
  <pre><code>            btn.setOnClickListener(new OnClickListener() {
  
              @Override
              public void onClick(View v) {
  
  
                  colorButtons.get(indiceColoreAttuale).setBackgroundResource(
                                  unSelectedColorsRes[indiceColoreAttuale]);
  
                  switch (index) {
                  case 0:
                      mainLayout.setBackgroundResource(R.drawable.blus);
                      break;
                  case 1:
                      mainLayout
                              .setBackgroundResource(R.drawable.azzurros); 
                      break;
                  case 2:
                      mainLayout
                              .setBackgroundResource(R.drawable.rossos);
                      break;
                  case 3:
                      mainLayout
                              .setBackgroundResource(R.drawable.giallos);
                      break;
                  case 4:
                      mainLayout
                              .setBackgroundResource(R.drawable.verdes);
                      break;
                  case 5:
                      mainLayout
                              .setBackgroundResource(R.drawable.rosas);
                      break;
                  case 6:                     
                      mainLayout
                              .setBackgroundResource(R.drawable.grigios);
                      break;
                  case 7:
                      mainLayout
                              .setBackgroundResource(R.drawable.neros);
                      break;
                  case 8:
                      mainLayout
                              .setBackgroundResource(R.drawable.arancios);
                      break;
                  case 9:
                      mainLayout
                              .setBackgroundResource(R.drawable.marrones);
                      break;
                  case 10:
                      mainLayout
                              .setBackgroundResource(R.drawable.violas);
                      break;
                  }
  
                  mainLayout.startAnimation(animationShowTextColor);
                  mainLayout.setGravity(Gravity.CENTER_HORIZONTAL);
                  indiceColoreAttuale = index;
                  colorButtons.get(index).setBackgroundResource(
                          selectedColorsRes[index]);
  
              }
          });
  </code></pre>
  
  <p>It runs excepiton again when I call setBackgroundResource() on mainLayout.</p>
  
  <p>I hope you can help me to solve this, thanks in advance!</p>