pChoice.setOnClickTextViewListener(new PopChoice.OnClickTextViewListner() {
@Override
public void onTextViewClick(String tag) {
if (tag.equals("相机")) {
if (checkPermission(Manifest.permission.CAMERA)){
intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent, REQUEST_CODE_PHOTO);
}else {
//申请权限
ActivityCompat.requestPermissions(SetActivity.this, new String[]{Manifest.permission.CAMERA}, REQUEST_PERMISSION_CAMERA );
}
private File file = new File(Environment.getExternalStorageDirectory() + "/temp.png");
case REQUEST_CODE_PHOTO:
if (intent != null && intent.getData() != null) {
uri = intent.getData();
}
if (uri == null) {
uri = Uri.fromFile(file);
}
int degree = readPictureDegree(file.getAbsolutePath());
BitmapFactory.Options opts = new BitmapFactory.Options();// 获取缩略图显示到屏幕上
opts.inSampleSize = 2;
Bitmap cbitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), opts);
if(null != cbitmap){
/**
* 把图片旋转为正的方向
*/
Bitmap newbitmap = rotaingImageView(degree, cbitmap);
if (MediaStore.Images.Media.insertImage(getContentResolver(), newbitmap, null, null) != null) {
uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(), newbitmap, null, null));
}
startPhotoZoom(uri);
}else {
JUtils.Toast("获取图片失败");
}
break;
经过各种折腾,各种改,终于发现了原因
就是权限没加、、、、从相机获取照片保存到指定的文件夹,需要储存卡的读写权限,6.0之后是手动添加的,,,,我只添加了打开相机的权限
if (checkPermission(Manifest.permission.CAMERA)&&checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE)&&checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)){
这样就ok了