Recently I needed to implement avatar image upload from an Android app, I didn't found a library that did all that I needed so I forked a pretty good one and made it better, check it out: Android Image Cropper.
See also the followup post: Android Image Cropper async support and custom progress UI.
Requirements:
- Pick image from camera or gallery using single chooser.
- Select circular crop window in the image for the avatar.
- Limit output avatar image to 500×500 pixels.
- Efficient memory usage.