Android 无法从图像文件创建位图
作为我程序的一部分,我需要显示属于JPG文件文件夹的图像。为此,我有以下代码: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
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代码已经在处理这个错误,这个错误与解码到现有位图的问题有关。所以你提供了一个非法的论点。不知何故,那个文件是不同的。删除有问题的图像并查看其是否完成。如果它完成了,查看有问题的图像,看看它有什么不同,重新保存它,等等。它也不起作用,但是,我已经删除了有问题的图像,问题不会重复