1

I've searched on stackoverflow but never found a solution

Here is my situation:

I have a button which start an intent to pick an image

How can I resize proportionally (to keep the aspect ration) and display it on another activity (in imageview)?

I also want to save this resized image to user storage. How can I do that?

Thanks!

Here is my code

MainActivity.java

btn.setOnClickListener(new View.OnClickListener() {

  @Override
        public void onClick(View arg0) {
    Intent intent = new Intent();
             intent.setType("image/*");
             intent.setAction(Intent.ACTION_GET_CONTENT);

             startActivityForResult(
                     Intent.createChooser(intent, getString(R.string.completeaction)),
                     PICK_FROM_FILE);         
        }

    });
}
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      Bitmap selectedphoto   = null;

      super.onActivityResult(requestCode, resultCode, data);
     if (requestCode == RequestExternal && resultCode == RESULT_OK && null != data) {

          Uri selectedImage = data.getData();
          String [] filePathColumn = {MediaStore.Images.Media.DATA};
          Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
          cursor.moveToFirst();   
          int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
          String filePath = cursor.getString(columnIndex);
          selectedphoto = BitmapFactory.decodeFile(filePath);
          cursor.close();
          Intent intent = new Intent(MainActivity.this,PhotoResized.class);
          intent.putExtra("data", selectedphoto);
          startActivity(intent);
     }
      }

PhotoResized.java

@Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.photoresized);
  img = (ImageView) findViewById(R.id.imageView1);
}
K3v
  • 71
  • 7

1 Answers1

0

For resizing the image use sampling technique provided by dev.android here

Use Lrucache for storing images. Use technique shown here

Nishant Verma
  • 110
  • 2
  • 8