80,490
社区成员
发帖
与我相关
我的任务
分享File file = new File(helper.path + helper.fileName);
helper.picPath = file.getAbsolutePath();
Uri uri = Uri.fromFile(file);
int degree = RotatePicUtils.readPictureDegree(helper.picPath);
//有些机型存在手机拍摄的照片自动横着的问题,遇到横着的,自动转过来。
Bitmap newBitmap = RotatePicUtils.rotateImageView(degree, getBitmap(uri));
cImageView.setImageBitmap(newBitmap);
这是点击拍照的事件的部分代码
mBtnTake.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (dialog!=null&&dialog.isShowing()){
dialog.dismiss();
}
Intent intent;
if (ContextCompat.checkSelfPermission(mActivity, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED
|| ContextCompat.checkSelfPermission(mActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
//请求权限
ActivityCompat.requestPermissions(mActivity,
new String[]{Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_CAMERA);
//判断是否需要 向用户解释,为什么要申请该权限
ActivityCompat.shouldShowRequestPermissionRationale(mActivity,
Manifest.permission.READ_CONTACTS);
} else {
intent = new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
intent.addCategory(Intent.CATEGORY_DEFAULT);
Uri uri = getFileUri();
if (uri != null) {
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
}
mActivity.startActivityForResult(intent, 0);
}
}
});
}
public Uri getFileUri() {
fileName = "bzt_" + System.currentTimeMillis() + ".jpg";
File file;
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/bzt/temp/";
File pathDir = new File(path);
if (!pathDir.exists()) {
pathDir.mkdir();
}
picPath = path + fileName;
file = new File(picPath);
return Uri.fromFile(file);
}
return null;
}
debug模式下,bitmap为android.graphics.Bitmap@8d4222e
file 为 /storage/emulated/0/bzt/temp/bzt_1474166663890.jpg
uri 为 file:///storage/emulated/0/bzt/temp/bzt_1474166663890.jpg
tempImagePath = "";
if (data != null) { // 相册获取地址
Uri uri = data.getData();
String[] proj = { MediaStore.Images.Media.DATA }; // null
Cursor actualimagecursor = getContentResolver().query(uri,
proj, null, null, null);
if(actualimagecursor == null) { // 小米为空的处理
tempImagePath = uri.getPath();
} else {
int actual_image_column_index = actualimagecursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
actualimagecursor.moveToFirst();
tempImagePath = actualimagecursor
.getString(actual_image_column_index);
}