Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.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 无法从图像文件创建位图_Android_Android Image_Android Bitmap - Fatal编程技术网

Android 无法从图像文件创建位图

Android 无法从图像文件创建位图,android,android-image,android-bitmap,Android,Android Image,Android Bitmap,作为我程序的一部分,我需要显示属于JPG文件文件夹的图像。为此,我有以下代码: private ArrayList<ImageGalleryItem> getData() { final ArrayList<ImageGalleryItem> imageItems = new ArrayList<>(); try { Intent intent = getIntent(); String imagesFolder

作为我程序的一部分,我需要显示属于JPG文件文件夹的图像。为此,我有以下代码:

private ArrayList<ImageGalleryItem> getData() {
    final ArrayList<ImageGalleryItem> imageItems = new ArrayList<>();
    try {
        Intent intent = getIntent();
        String imagesFolder = intent.getStringExtra("SourceFolder");
        String questionId = Integer.toString(intent.getIntExtra("QuestionId", 0));
        File file = new File(imagesFolder);
        if (file.exists() && file.isDirectory()) {
            File[] files = file.listFiles();
            for (File f : files) {
                try {
                    if (f.getName().startsWith(questionId + "_")) {
                        Bitmap bitmap = BitmapFactory.decodeFile(f.getPath());
                        imageItems.add(new ImageGalleryItem(bitmap, f.getName()));
                    }
                }
                catch (Exception e)
                {
                    Log.e("TDC@", e.getMessage());
                }
            }
        }
    }
    catch (Exception e)
    {
        Log.e("TDC@", e.getMessage());
    }

    return imageItems;
}
    try {
        bm = nativeDecodeByteArray(data, offset, length, opts);

        if (bm == null && opts != null && opts.inBitmap != null) {
            throw new IllegalArgumentException("Problem decoding into existing bitmap");
        }
        setDensityFromOptions(bm, opts);
    } finally {
        Trace.traceEnd(Trace.TRACE_TAG_GRAPHICS);
    }
所以问题是,为什么位图不能被正确解码,为什么异常不能被捕获

如果我在mobile file manager中浏览该文件并打开该文件,它将正确显示,因此图像格式没有问题。此外,这张图像是用相机拍摄的,与其他正确解码的图像相同


如何解决这个问题,或者,有没有其他方法可以解决这个问题?

我不知道为什么会发生这种情况。试试这个:


位图位图=BitmapFactory.decodeStreamnew FileInputStreamf

如果异常已被捕获,则无法在代码中捕获它。第一个问题是:无论如何,android代码已经在处理这个错误,这个错误与解码到现有位图的问题有关。所以你提供了一个非法的论点。不知何故,那个文件是不同的。删除有问题的图像并查看其是否完成。如果它完成了,查看有问题的图像,看看它有什么不同,重新保存它,等等。它也不起作用,但是,我已经删除了有问题的图像,问题不会重复