我遇到了奇怪的问题,我有一个用户单击按钮来选择图像。然后我将编码路径存储在 db 中并稍后检索它,因此我在另一个活动中显示图像但我得到以下异常
09-14 01:39:36.195: W/System.err(2241): java.io.FileNotFoundException: No content provider: /external/images/media/1113
09-14 01:39:36.195: W/System.err(2241): at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:610)
09-14 01:39:36.195: W/System.err(2241): at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:542)
09-14 01:39:36.195: W/System.err(2241): at android.content.ContentResolver.openInputStream(ContentResolver.java:377)
我的按钮 OnClick 并存储在数据库代码中:
Uri selectedImage = imageReturnedIntent.getData();
InputStream imageStream;
try {
imageStream = getContentResolver().openInputStream(selectedImage);
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream, null, options );
ivPictureChosen.setImageBitmap(yourSelectedImage);
storeEncodedImageInDb(selectedImage.getEncodedPath());
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Toast.makeText(this, "Couldn't pick image", Toast.LENGTH_SHORT).show();
}
我的检索和显示图像代码:
String imagePath = db.getEncodedImage();
if(imagePath.length()>0){
Uri mainImgeUri = Uri.parse(imagePath);
InputStream imageStream;
try {
imageStream = getContentResolver().openInputStream(mainImgeUri);
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap yourSelectedImage = BitmapFactory.decodeStream(imageStream, null, options );
mainImage.setImageBitmap(yourSelectedImage);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
尽管那是我首先得到的编码路径,但为什么找不到文件?