- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个关于 BitMapFactory.decodeFile 的问题。
在我的应用中,我希望用户能够从他/她的设备中选择图像或拍照。然后必须将其显示在 ImageView (medication_photo) 中。我也尝试缩小图像,因为在我之前的代码中我遇到了 OutOfMemory 错误。
问题是在选择图片后,我的应用抛出了这个异常:
FileNotFoundException: Unable to decode stream:
java.io.FileNotFoundException: /content:/media/external/images/media/1499:
open failed: ENOENT (No such file or directory)
代码 fragment :
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_PHOTO) {
if (resultCode == RESULT_OK) {
String result = data.getDataString();
setPhoto(result);
}
}
// browse photo
if (requestCode == BROWSE_PHOTO) {
if (resultCode == RESULT_OK) {
String result = data.getDataString();
setPhoto(result);
}
if (resultCode == RESULT_CANCELED) {
}
}
}
private void setPhoto(String path) {
// re-scale image first
try {
File file = new File(path);
Log.e("MedicationAdd.setPhoto->file",file.getAbsolutePath()); // this did not work
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path,options); // FileNotFound
options.inSampleSize = scaleDownBitmap(options, options.outWidth, options.outHeight);
Log.e("MedicationAdd.setPhoto->path",path);
options.inJustDecodeBounds = false;
this.bm = BitmapFactory.decodeFile(path,options); // FileNotFound
this.medication_photo.setImageBitmap(this.bm);
} catch (Exception e) {
Log.e("MedicationAdd.setPhoto", e.toString());
}
}
最佳答案
试试这个....图像 uri
Uri imageUri = data.getData();
try {
bm = MediaStore.Images.Media.getBitmap(this.getContentResolver(), imageUri);
iv_profile.setImageBitmap(bm);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
关于android - BitmapFactory.decodeFile 返回 fileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21907522/
我已经尝试了我在 stackoverflow 上找到的所有解决方案来解决这个问题,但都是徒劳的。运行以下代码时,mAlbumPhotoUri 为“/mnt/sdcard/photo/134214714
在我的应用程序中,我有一个文件: private File TEMP_PHOTO_FILE = new File(Environment.getExternalStorageDirectory(),
我正在尝试使用这个: BitmapFactory.decodeFile("logo.jpg") 与我的 apk 相比,我似乎没有将文件:logo.jpg 放在正确的位置。它应该去哪里? 附言我得到的错
我正在编写带有 ActionBar 选项卡和 ViewPager 的应用程序。我有两个标签和两个页面。第一页只是 Fragmet,第二页是 ListFragment。 在第一页中,我正在反转有关平台的
我正在处理多达 1200 张图像。在此处找到的先前问题的帮助下,我将其优化为可以处理 100 张图像到 500 张图像。现在,这就是我所拥有的: public Bitmap getBitmap(
我尝试了几种方法,但它总是返回“null”。 我想从相机文件夹中读取一个文件到一个位图对象中。 File camDir = new File(Environment.getExternalStorag
我正在尝试合并 2 张图片,所以我在此处搜索并看到了一个代码 fragment combining two png files in android Bitmap bottomImage = new
我有一个应用程序,您可以在其中从设备上的图库或照片文件夹中选择图像。所选文件的路径存储在 Intent 中,因此它们可以在 Activity 之间传递。我通过 intent.getDataString
我有一个文件本地保存到应用程序的私有(private)存储中。我已经验证它存在,但是每当我调用 BitmapFactory.decodeFile 它总是返回 null. 如果我将文件保存为资源并使用
我正在用相机 Activity 拍照,然后尝试从保存的位置读取它。不幸的是,位图由以下方式返回: Bitmap bimage = BitmapFactory.decodeFile( path ); 具
我想从网络上的照片创建位图。首先,我尝试使用 BitmapFactory.decodeStream 但由于错误而返回 null (http://code.google.com/p/android/is
BitmapFactory.decodeFile 仅当我从手机图库中选择图像时才会导致 outOfMemoryError,而不是当我从使用相机 Intent 拍摄的照片中选择图像时。我实际上在使用相机
我正在使用来自 here 的以下代码.我想压缩图像。 BitmapFactory.Options options = new BitmapFactory.Options(); options.inJu
我有一个程序可以从存储区中保存的全尺寸图像创建缩略图。我正在尝试使用 mockito 测试该功能,但它给了我以下错误: java.lang.RuntimeException:未模拟 android.g
我正在创建一个 Android 应用程序,您可以在其中将图像从位置 x 复制到位置 y。复制完成后,我想在 ImageView 中查看图片。我知道图像位置,但无论我尝试什么,我都无法创建它的 bitm
我将使用 Bitmap.compress() 方法压缩图像。 但是当我使用 bitmap = BitmapFactory.decodeFile() 获取 Bitmap 时,我得到了一个 null 对象
我有一个关于 BitMapFactory.decodeFile 的问题。 在我的应用中,我希望用户能够从他/她的设备中选择图像或拍照。然后必须将其显示在 ImageView (medication_p
当我从图库中选取图像时,如果图像大小大于 3 Mb,android 会出现 OutOfMemoryError。 BitmapFactory.Options options = new BitmapF
我正在使用 android 4.0.4,内核 3.0.8+ BitmapFactory.decodeFile 每隔一段时间就会返回一个空位图。 请注意,如果位图工厂加载位图失败,我会立即重试,最多 4
保存文件: FileOutputStream fo = null; try { fo = this.openFileOutput("test.png", Context.MODE_WO
我是一名优秀的程序员,十分优秀!