次のようなプレフィックス付きのパスにカメラ画像を保存します。
String path = Environment.getExternalStorageDirectory().getPath()+/*myFolder&myFileName*/;
正しく保存されているもの
/storage/emulated/0/myapp/target060613_112341.jpg
次に、このコードを使用して、この画像を ImageView に入れたいと思います。
public void addImageToGallery(String path) {
ImageView imv = new ImageView(mGUIView.getContext());
Bitmap bitmap = BitmapFactory.decodeFile(path);
imv.setImageBitmap(bitmap);
imv.setAdjustViewBounds(true);
imv.setMaxHeight(100);
RelativeLayout rl = (RelativeLayout) findViewById(R.id.RelativeImageGallery);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
lp.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
lp.addRule(RelativeLayout.ALIGN_LEFT);
rl.addView(imv, lp);
}
しかし、BitmapFactory.decodeFile(path) が呼び出されると問題が発生します... 関数は、そのようなファイルまたはディレクトリが存在しないというエラーを返します (ENOENT)
マニフェストにもw/r権限があります:
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
getFilesDir().getAbsolutePath()
内部パス ( )に jpg ファイルを保存して取得しようとすると、同じエラーが発生します。