fragment 在源码中是没有做返回到fragment中的操作,只有返回activity中,所以我就用fragment父activity来调用,也可以用全局,
/*弹出选择图片方式,相册中获取和照相*/
private void goToast() {
/*final String[] item = {"相册","拍照"};*/
final String[] item = {"相册","拍照"};
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("请选择获取相片方式:");
builder.setItems(item, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
goXiangChe();
xc = 0;
break;
case 1:
xc=1;
goXiangJi();break;
}
}
});
builder.create().show();
}
/*调用相机*/
private void goXiangJi() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT,false);
startActivityForResult(intent, 1);
}
/*调用相册*/
protected void goXiangChe() {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 111);
}
private Bitmap bitmap;
private int xc;
//不管是拍照还是在相册里选择相片,都会调用这个方法
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
Uri uri = data.getData();
ContentResolver cr = getActivity().getContentResolver();
try {
if (xc==0){
bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri));
}else {
bitmap = data.getParcelableExtra("data");
}
if (uri ==null){
uri = Uri.parse(MediaStore.Images.Media.insertImage(getActivity().getContentResolver(), bitmap, null,null));
}
img.setImageBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
}