2D Graphics Android

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
class IOUtils {
  private static final String LOG_TAG = "IOUtils";
  public static final String PREFS_FILE = "javaeye.prefs";
  public static Bitmap getBitmapFromUrl(URL url) {
    Bitmap bitmap = null;
    InputStream in = null;
    OutputStream out = null;
    try {
      in = new BufferedInputStream(url.openStream(), 4 * 1024);
      final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
      out = new BufferedOutputStream(dataStream, 4 * 1024);
      copy(in, out);
      out.flush();
      final byte[] data = dataStream.toByteArray();
      bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
      // Log.e(LOG_TAG, "bitmap returning something");
      return bitmap;
    } catch (IOException e) {
      // Log.e(LOG_TAG, e.getMessage());
    } finally {
      closeStream(in);
      closeStream(out);
    }
    // Log.e(LOG_TAG, "bitmap returning null");
    return null;
  }
  private static void copy(InputStream in, OutputStream out)
      throws IOException {
    byte[] b = new byte[4 * 1024];
    int read;
    while ((read = in.read(b)) != -1) {
      out.write(b, 0, read);
    }
  }
  private static void closeStream(Closeable stream) {
    if (stream != null) {
      try {
        stream.close();
      } catch (IOException e) {
        // Log.e(LOG_TAG, e.getMessage());
      }
    }
  }
}