お返事を頂きありがとうございます。
アドバイス通り、ファイル名を取得してArrayListに入れて、Collection.sortして、
ソート済みリストから順番にファイル名を取得していこうと思ったのですが、できません。
以下に私が実施したソースコードを記します。
お気づきの点がございましたら、ぜひご指摘をよろしくお願い致します。
//カメラで撮影した結果を受け取る
@Override
public void onActivityResult(int requestCode,int resultCode,Intent data) {
if(requestCode == 1 && resultCode == RESULT_OK ){
//撮影した画像を/data/data/パッケージ名/files 以下に保存する
try
{
Bitmap bm = null;
Bundle extras = data.getExtras();
bm = (Bitmap) extras.get("data");
// 撮影した写真をファイルに生成する。
String fileName = getPicFileName();//写真のファイル名を年・月・日・時間・分・秒で保存する
FileOutputStream fos = openFileOutput(fileName, MODE_PRIVATE);
BufferedOutputStream bos = new BufferedOutputStream(fos);
bm.compress(Bitmap.CompressFormat.JPEG, 100, bos);
fos.close();
bos.flush();
bos.close();
}
catch(Exception e){
Toast.makeText(getApplicationContext(),"撮影した画像を保存できません。", Toast.LENGTH_SHORT).show();
}
ArrayList<String> dirList = new ArrayList<String>();
//onActivityResultで保存した画像をphotoviewに表示する
photoview = (ImageView) findViewById(R.id.photoview);
Bitmap bitmap = null;
try
{
//getFilesDir()で内部ストレージ(/data/data/パッケージ名/files)のディレクトリを取得する
String filedir = new String("data/data/" + getPackageName() + "/files/");
//File Filename = new File(filedir,getPicFileName());
dirList.add(filedir + getPicFileName());
Collections.sort(dirList);
FileInputStream in = openFileInput(dirList.get(0)); ←←←←←←←←←←←←←ここで落ちる
BufferedInputStream bis = new BufferedInputStream(in);
ByteArrayOutputStream baout = new ByteArrayOutputStream();
byte[] w = new byte[1024];
while (bis.read(w) >= 0) {
baout.write(w, 0, 1024);
}
byte[] byteData = baout.toByteArray();
bitmap = BitmapFactory.decodeByteArray(byteData, 0, byteData.length);
in.close();
bis.close();
baout.close();
}
catch(Exception e){
Toast.makeText(getApplicationContext(),"画像を表示できません。", Toast.LENGTH_SHORT).show();
}
photoview.setImageBitmap(bitmap);
}
}