title: resize image picked from gallery
body: <p>I'm working in an app that take an image from the gallery and save it into parse.</p>
  
  <p>The problem is that when I pick an image taken by the camera the size of the image is too big and takes some seconds to load the image in an image view. Also when I save the image and download again in the app it takes a lot of time because it has to download a big image.</p>
  
  <p>I don't know how I reduce the size of the image picked. I tried several things but anything works. </p>
  
  <p>This is my code at this moment</p>
  
  <pre><code>public class Datos extends Activity implements OnItemSelectedListener {
  
  
  private final int SELECT_PHOTO = 1;
  private ImageButton imageView;
  
  
  ParseFile file;
  byte [] data;
  
  /*
      public Bitmap getResizedBitmap(Bitmap bm, int newWidth, int newHeight) {
      int width = bm.getWidth();
      int height = bm.getHeight();
      float scaleWidth = ((float) newWidth) / width;
      float scaleHeight = ((float) newHeight) / height;
      // CREATE A MATRIX FOR THE MANIPULATION
      Matrix matrix = new Matrix();
      // RESIZE THE BIT MAP
      matrix.postScale(scaleWidth, scaleHeight);
  
      // "RECREATE" THE NEW BITMAP
      Bitmap resizedBitmap = Bitmap.createBitmap(
              bm, 0, 0, width, height, matrix, false);
      bm.recycle();
      return resizedBitmap;
      }
  */
  
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      requestWindowFeature(Window.FEATURE_NO_TITLE);
      setContentView(R.layout.activity_datos);
      btnClick();
  
      imageView = (ImageButton) findViewById(R.id.imageButton);
  
  
      ImageButton pickImage = (ImageButton) findViewById(R.id.imageButton);
      pickImage.setOnClickListener(new OnClickListener() {
  
          @Override
          public void onClick(View view) {
              Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
              photoPickerIntent.setType("image/*");
              //photoPickerIntent.putExtra("outputX", 150);
              //photoPickerIntent.putExtra("outputY", 100);
              //photoPickerIntent.putExtra("aspectX", 1);
              //photoPickerIntent.putExtra("aspectY", 1);
              //photoPickerIntent.putExtra("scale", true);
              startActivityForResult(photoPickerIntent, SELECT_PHOTO);
          }
      });
  
  }
  
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
      super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
  
  
      switch (requestCode) {
          case SELECT_PHOTO:
              if (resultCode == RESULT_OK) {
                  try {
                      Uri imageUri = imageReturnedIntent.getData();
                      InputStream imageStream = getContentResolver().openInputStream(imageUri);
                      Bitmap selectedImage = BitmapFactory.decodeStream(imageStream);
                      imageView.setImageBitmap(selectedImage);
  
                      ByteArrayOutputStream stream = new ByteArrayOutputStream();
                      selectedImage.compress(Bitmap.CompressFormat.PNG, 100, stream);
  
                      data = stream.toByteArray();
  
                      BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), selectedImage);
                      imageView.setBackgroundDrawable(bitmapDrawable);
  
                      BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
                      Bitmap bmp = drawable.getBitmap();
                      Bitmap b = Bitmap.createScaledBitmap(bmp, 120, 120, false);
  
  
                  } catch (FileNotFoundException e) {
                      e.printStackTrace();
                  }
  
  
              }
  
      }
  }
  
  
  
  @Override
  public void onItemSelected(AdapterView&lt;?&gt; parent, View v, int position,
                             long id) {
      // TODO Auto-generated method stub
  
      Spinner spinner = (Spinner) parent;
      if (spinner.getId() == R.id.telefono) {
          consola = parent.getItemAtPosition(position).toString();
      } else if (spinner.getId() == R.id.provincia) {
          provincia = parent.getItemAtPosition(position).toString();
      }
  
  }
  
  @Override
  public void onNothingSelected(AdapterView&lt;?&gt; arg0) {
      // TODO Auto-generated method stub
  }
  
  
  public void btnClick() {
  
      Button buttonEnviar = (Button) findViewById(R.id.enviar);
  
  
      buttonEnviar.setOnClickListener(new OnClickListener() {
  
  
          @Override
          public void onClick(View arg0) {
  
              //Storing image in parse passed in  onclick method of a button with the below code:
  
  
              Intent intentDatos = new Intent(Datos.this, Inicio.class);
              startActivity(intentDatos);
  
  
              ParseObject testObject = new ParseObject("Musica");
  
              if (data != null) {
  
                  file = new ParseFile("selected.png", data);
              }
  
              else {
  
                  data = "".getBytes();
                  file = new ParseFile("selected.png", data);
              }
  
              //file.saveInBackground();
  
  
              testObject.put("imagen", file);
  
              testObject.saveInBackground();
  
  
  
  
          }
      });
  
  
  }
  </code></pre>
  
  <p>Does Anyone know how to do it?</p>
  
  <p>Thanks for your help,</p>