0

次の質問があります。このようなメニューボタンから始まるカメラインテントを使用しています

case R.id.camera:           
        final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT,
                Uri.fromFile(getTempFile(this)));           
        startActivityForResult(intent, TAKE_PHOTO_CODE); 
        return true;

これはうまく機能しており、元の画像(私が望む元のサイズ)を保存します。

次のコードもあります

private File getTempFile(LovneDobe lovneDobe) {
    final File path = new File( Environment.getExternalStorageDirectory(), lovneDobe.getPackageName() );
    sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
      if(!path.exists()){
        path.mkdir();
      }
      return new File(path, "image.jpg");
}

このコードは画像をSDカードに保存し、ギャラリーにも入れます。しかし、私が直面している問題は、1 つの画像しか保存されないことです。別のものを取ると、前のものを上書きします。そして今、私の質問は、私が撮ったすべての写真を保存するようにこれを変更するにはどうすればよいですか?

喜んで手伝ってくれる人に前もって感謝します。

4

1 に答える 1

1

ファイルを明示的にオーバーライドしているためだと確信しています。メソッド「getTempFile」では、メソッドを呼び出すたびに常に同じパスと名前を指定します。たとえば、何枚の写真を撮ったかを知るために、静的なカウンターを用意してみてください。

           return new File(path, "image"+counter+".jpg");
于 2011-04-29T13:00:31.273 に答える