安卓takephoto V4.1.0BUG和修复方法

在使用拍照并裁剪的时候,用如下代码:

//拍照并裁剪

takePhoto.onPickFromCaptureWithCrop(imageUri, getCropOptions());

发现拍照时无法进入裁剪页面,LOG提示

takeCancel操作被取消

查验代码,原来代码如下:在TUriParse.java

public static Uri getTempUri(Context context) {
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
    File file = new File(Environment.getExternalStorageDirectory(), "/images/" + timeStamp + ".jpg");
    if (!file.getParentFile().exists()) {
        file.getParentFile().mkdirs();
    }
    return getUriForFile(context, file);
}

修改为如下代码,就可以拍照裁剪啦:

public static Uri getTempUri(Context context) {
    ContextWrapper cw = new ContextWrapper(context);
    File directory = cw.getExternalFilesDir(Environment.DIRECTORY_PICTURES);
    File file = new File(directory, "/images/" +System.currentTimeMillis() + ".jpg");

    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());
    //File file = new File(Environment.getExternalStorageDirectory(), "/images/" + timeStamp + ".jpg");
    if (!file.getParentFile().exists()) {
        file.getParentFile().mkdirs();
    }
    return getUriForFile(context, file);
}

你可能感兴趣的:(Android新手入门)