Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android BitmapFactory.decode()从库中拾取图像后出现找不到生成文件错误_Android_Android Camera_Android Bitmap - Fatal编程技术网

Android BitmapFactory.decode()从库中拾取图像后出现找不到生成文件错误

Android BitmapFactory.decode()从库中拾取图像后出现找不到生成文件错误,android,android-camera,android-bitmap,Android,Android Camera,Android Bitmap,解码从媒体接收到的图像文件。在操作中的额外输出拾取未找到意图生成文件异常。我看到了很多类似的问题,但仍然无法解决这个问题。我在androidGallery应用程序下面的棒棒糖中遇到了这个问题,在android版本=5上面的谷歌照片应用程序中也遇到了同样的问题 Myfragment.java if (takePictureIntent.resolveActivity(mContext.getPackageManager()) != null) { takePictureIntent.put

解码从媒体接收到的图像文件。在操作中的额外输出拾取未找到意图生成文件异常。我看到了很多类似的问题,但仍然无法解决这个问题。我在androidGallery应用程序下面的棒棒糖中遇到了这个问题,在android版本=5上面的谷歌照片应用程序中也遇到了同样的问题

Myfragment.java

if (takePictureIntent.resolveActivity(mContext.getPackageManager()) != null) {
    takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,Helpers.getOutputMediaFileUri());

    Intent startImage = Intent.createChooser(chooseImageIntent, "Select From");

    startImage.putExtra(Intent.EXTRA_INITIAL_INTENTS,
            new Intent[]{takePictureIntent});
    ((Activity) mContext).startActivityForResult(startImage, Constants.REQUEST_CHOOSE_FROM);
} else {
    ((Activity) mContext).startActivityForResult(chooseImageIntent, Constants.REQUEST_IMAGE_GALLERY);
}
public static String LAST_IMAGE_FILE;
public static final String TEMP_IMAGE_FILE = "TEMP_IMG";

public static File getOutputMediaFile() {
    File mediaStorageDir = new File(
            Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
            "In.Touch");

    if (!mediaStorageDir.exists()) {
        if (!mediaStorageDir.mkdirs()) {
            return null;
        }
    }

    // Create a media file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
            Locale.getDefault()).format(new Date());
    File mediaFile = new File(mediaStorageDir.getPath() + File.separator
            + TEMP_IMAGE_FILE + "_" + timeStamp + ".jpg");
    LAST_IMAGE_FILE = mediaFile.getAbsolutePath();

    return mediaFile;
}
Helpers.java

if (takePictureIntent.resolveActivity(mContext.getPackageManager()) != null) {
    takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,Helpers.getOutputMediaFileUri());

    Intent startImage = Intent.createChooser(chooseImageIntent, "Select From");

    startImage.putExtra(Intent.EXTRA_INITIAL_INTENTS,
            new Intent[]{takePictureIntent});
    ((Activity) mContext).startActivityForResult(startImage, Constants.REQUEST_CHOOSE_FROM);
} else {
    ((Activity) mContext).startActivityForResult(chooseImageIntent, Constants.REQUEST_IMAGE_GALLERY);
}
public static String LAST_IMAGE_FILE;
public static final String TEMP_IMAGE_FILE = "TEMP_IMG";

public static File getOutputMediaFile() {
    File mediaStorageDir = new File(
            Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
            "In.Touch");

    if (!mediaStorageDir.exists()) {
        if (!mediaStorageDir.mkdirs()) {
            return null;
        }
    }

    // Create a media file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
            Locale.getDefault()).format(new Date());
    File mediaFile = new File(mediaStorageDir.getPath() + File.separator
            + TEMP_IMAGE_FILE + "_" + timeStamp + ".jpg");
    LAST_IMAGE_FILE = mediaFile.getAbsolutePath();

    return mediaFile;
}
OnActivityResult

File file = new File(Helpers.LAST_IMAGE_FILE);
BitmapFactory.Options opts = new BitmapFactory.Options();
opts.inJustDecodeBounds = true;

Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), opts);
AndroidManifest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

请在保存的实例状态
Bundle
或进程终止后仍能保存的其他文件中,显示保存
最后一个图像\u文件的值的代码。另外,请注意,
ACTION\u PICK
不使用
EXTRA\u输出
——而是使用
Uri
返回
onActivityResult()
,使用
ContentResolver、
open()
BitmapFactory.decodeStream()`(或者更好的是像毕加索一样)。我已经更新了我的代码。最后一个图像文件是Helpers.java中的静态变量,也是临时图像文件