您的位置:首页 > 移动开发 > Android开发

android 从本地或者拍照上传图片

2016-10-11 11:36 295 查看
private static final int IMAGE_REQUEST_CODE = 0;

private static final int CAMERA_REQUEST_CODE = 1;

private static final String IMAGE_FILE_NAME = "header.jpg";
private static final int RESIZE_REQUEST_CODE = 2;

public  void Hand(){
dialogz2 = new Dialogz2(activity.this);
dialogz2.setDialogTitle("提示");
dialogz2.setSubTitle("请选择图片");
dialogz2.setLeftText("图库");
dialogz2.setRightText("相机");
dialogz2.setCancelable(true);
dialogz2.setCancelOutside(true);// true 点击空白处消失    false点击空白处不消失
dialogz2.setLeftClick(new BaseDialog.LeftClickLinstener() {
@Override
public void onClickLeft(View view) {
Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
galleryIntent.addCategory(Intent.CATEGORY_OPENABLE);
galleryIntent.setType("image/*");
startActivityForResult(galleryIntent, IMAGE_REQUEST_CODE);
}
});
dialogz2.setRightClick(new BaseDialog.RightClickLinstener() {
@Override
public void onClickRight(View view) {
if (isSdcardExisting()) {
Intent cameraIntent = new Intent(
"android.media.action.IMAGE_CAPTURE");
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri());
cameraIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE);
} else {
Toast.makeText(getApplication(), "请插入sd卡", Toast.LENGTH_LONG)
.show();
}
}
});
dialogz2.show();

}
private boolean isSdcardExisting() {
final String state = Environment.getExternalStorageState();
if (state.equals(Environment.MEDIA_MOUNTED)) {
return true;
} else {
return false;
}
}
private Uri getImageUri() {
return Uri.fromFile(new File(Environment.getExternalStorageDirectory(),
IMAGE_FILE_NAME));
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != -1) {
return;
} else {
switch (requestCode) {
case IMAGE_REQUEST_CODE:
resizeImage(data.getData());
break;
case CAMERA_REQUEST_CODE:
if (isSdcardExisting()) {
resizeImage(getImageUri());
} else {
Toast.makeText(getApplication(), "未找到存储卡,无法存储照片!",
Toast.LENGTH_LONG).show();
}
break;

case RESIZE_REQUEST_CODE:
if (data != null) {
showResizeImage(data);
}
break;
}
}
super.onActivityResult(requestCode, resultCode, data);
}
private void showResizeImage(Intent data) {
Bundle extras = data.getExtras();
if (extras != null) {
Bitmap photo = extras.getParcelable("data");
Drawable drawable = new BitmapDrawable(photo);

imageview.setImageDrawable(drawable);//设置给对应的控件

//设置头像成功 上传头像
dialogz2.dismiss();
}
}
public void resizeImage(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 150);
intent.putExtra("outputY", 150);
intent.putExtra("return-data", true);
startActivityForResult(intent, RESIZE_REQUEST_CODE);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: