@OnClick(R.id.iv_userinfo_avatar_edit)
public void setavatar(View v){
Intent intent1=new Intent(Intent.ACTION_PICK);
//点击编辑头像的小铅笔,弹出Intent Chooser
//从图库选择头像的intent
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
//拍照intent
Intent intent2 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File( Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),System.currentTimeMillis()+".jpg" );
cameraPath = file.getAbsolutePath();
//在BmobDemo项目中提交头像的地方,少写了一步
//在拍照后保存图片的时候会导致异常
//正确的写法是传入Uri,不是直接传入路径
Uri uri = Uri.fromFile(file);
intent2.putExtra(MediaStore.EXTRA_OUTPUT, uri);
//创建Intent Chooser
Intent chooser = Intent.createChooser(intent, "选择头像...");
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{intent2});
startActivityForResult(chooser, 101);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK&&requestCode==101){
if(data!=null){
//从图库中返回
//用户从图库中选择的图片,在图库中显示的地址
Uri uri=data.getData();
avatarView.setImageURI(uri);
//根据uri反查在磁盘中的地址
Cursor cursor=getContentResolver().query(uri, new String[]{MediaStore.Images.Media.DATA},
null, null, null);
cursor.moveToNext();
filePath=cursor.getString(0);
cursor.close();
}else{
//拍照返回
Options opts=new Options();
opts.inSampleSize=8;//压缩比例
filePath=cameraPath;
}
}
BmobProFile.getInstance(this).upload(filePath, new UploadListener() {
@Override
public void onError(int arg0, String arg1) {
avatarUrl = "";
showToastAndLog("上传头像失败,稍后重试", arg0+": "+arg1);
}
@Override
public void onSuccess(String arg0, String arg1, BmobFile arg2) {
//在上传完毕后的回调中为avatarUrl属性赋值
avatarUrl = arg2.getUrl();
//在ivAvatar中显示上传成功后的头像
ImageUtil.displayImage(avatarUrl, avatarView);
}
@Override
public void onProgress(int arg0) {
}
});
}
public void setavatar(View v){
Intent intent1=new Intent(Intent.ACTION_PICK);
//点击编辑头像的小铅笔,弹出Intent Chooser
//从图库选择头像的intent
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");
//拍照intent
Intent intent2 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File( Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),System.currentTimeMillis()+".jpg" );
cameraPath = file.getAbsolutePath();
//在BmobDemo项目中提交头像的地方,少写了一步
//在拍照后保存图片的时候会导致异常
//正确的写法是传入Uri,不是直接传入路径
Uri uri = Uri.fromFile(file);
intent2.putExtra(MediaStore.EXTRA_OUTPUT, uri);
//创建Intent Chooser
Intent chooser = Intent.createChooser(intent, "选择头像...");
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[]{intent2});
startActivityForResult(chooser, 101);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK&&requestCode==101){
if(data!=null){
//从图库中返回
//用户从图库中选择的图片,在图库中显示的地址
Uri uri=data.getData();
avatarView.setImageURI(uri);
//根据uri反查在磁盘中的地址
Cursor cursor=getContentResolver().query(uri, new String[]{MediaStore.Images.Media.DATA},
null, null, null);
cursor.moveToNext();
filePath=cursor.getString(0);
cursor.close();
}else{
//拍照返回
Options opts=new Options();
opts.inSampleSize=8;//压缩比例
filePath=cameraPath;
}
}
BmobProFile.getInstance(this).upload(filePath, new UploadListener() {
@Override
public void onError(int arg0, String arg1) {
avatarUrl = "";
showToastAndLog("上传头像失败,稍后重试", arg0+": "+arg1);
}
@Override
public void onSuccess(String arg0, String arg1, BmobFile arg2) {
//在上传完毕后的回调中为avatarUrl属性赋值
avatarUrl = arg2.getUrl();
//在ivAvatar中显示上传成功后的头像
ImageUtil.displayImage(avatarUrl, avatarView);
}
@Override
public void onProgress(int arg0) {
}
});
}