title: Setting image background in SurfaceView, getting black screen
body: <p>Okay so Im trying to set the background of a SurfaceView to a JPG file. But it doesn't seem to want to draw the image, and all I get is a black screen.</p>
  
  <p>Here:s my code:</p>
  
  <pre><code>    public class FloorplanActivity extends Activity{
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      MapView mapView = new MapView(getApplicationContext());
      setContentView(mapView);
  
  
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.floorplan, menu);
      return true;
  }
  
  class MapView extends SurfaceView{
  
      Rect testRectangle1 = new Rect(0, 0, 50, 50);
      Bitmap scaled;
      int x;
      int y;
  
      public MapView(Context context) {
          super(context);
  
      }
  
      public void surfaceCreated(SurfaceHolder arg0){
          Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.floorplan);
          float scale = (float)background.getHeight()/(float)getHeight();
          int newWidth = Math.round(background.getWidth()/scale);
          int newHeight = Math.round(background.getHeight()/scale);
          scaled = Bitmap.createScaledBitmap(background, newWidth, newHeight, true);
      }
  
   public void onDraw(Canvas canvas) {
          canvas.drawBitmap(scaled, 0, 0, null); // draw the background
      }
  </code></pre>
  
  <p>Not sure why it won't draw the "floorplan" image I have saved in the drawable-mdpi folder.</p>
  
  <p>Anyone got any suggestions?</p>
  
  <p>Thanks.</p>
  
  <p>EDIT: After doing some debugging with breakpoints, it seems like the "scaled" variable becomes "Infinity" for some reason and as such the newWidth and newHeight variables become less than 0 and the application crashes.</p>
  
  <p>This is only if I move the entire surfaceCreated into the contstructor, if I leave the code as is here then it doesn't do anything beyind displaying a black screen.</p>
  
  <p>No idea what's causing it to do that though...</p>