Android头像上传(本地相册和调用系统相机)
市面上上的android应用目前大都包含有头像上传的功能,恰好在本次的项目中在完成头像上传的功能中遇到了一些问题,在此进行记录,以供日后查阅方便.
1.所谓头像上传,是要指定你要上传的方式的,比如:调用本地相册,在相册中进行选取(此方法本人是写在了工具类中,所以需要传入activity为参数)
//从相册中选取照片
public void doPickPhotoFromGallery(Activity activity) {
final Intent intent = getPhotoPickIntent();
activity.startActivityForResult(intent, Constant.PHOTO_PICKED_WITH_DATA);
}
public Intent getPhotoPickIntent() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 80);
intent.putExtra("outputY", 80);
intent.putExtra("return-data", true);
return intent;
}
2.再比如,你想要调用系统的相机来进行拍照(声明了两个全局变量)
/*拍照的照片存储位置*/
private static final File PHOTO_DIR = new File(Environment.getExternalStorageDirectory() + "/DCIM/Camera");
public File mCurrentPhotoFile;//照相机拍照得到的图片
//打开系统相册
public void openSystemCamera(Activity activity) {
String status = Environment.getExternalStorageState();
if (status.equals(Environment.MEDIA_MOUNTED)) {//判断是否有SD卡
doTakePhoto(activity);// 用户点击了从照相机获取
} else {
Toast.makeText(activity, "未装载内存卡", Toast.LENGTH_SHORT).show();
}
}
/**
* 拍照获取图片
*/
public void doTakePhoto(Activity activity) {
try {
// Launch camera to take photo for selecte