1

私のアプリでは、カメラを開き、そのファイルを特定の名前で保存したいと考えています。私はこのコードを使用します:

public void onLongPress(MotionEvent e) {
        // TODO Auto-generated method stub
        Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File("new-photo-name.jpg")) );
        startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);

}
protected void onActivityResult1(int requestCode, int resultCode, Intent data) {
                    if (requestCode == CAMERA_PIC_REQUEST) {
                          Bitmap image = (Bitmap) data.getExtras().get("data");  
                    }   
}

カメラを開き、写真を撮って保存できますが、良い名前は付けません。写真を保存するたびに、彼は写真に別の名前を付けます.1つの名前の例は「13333675392558.jpg」です。彼がどうやってそのような数字を出すのか理解できません。

コードで "new-photo-name.jpg" という名前が適用されないのはなぜですか?

そして/または私は何を間違っていますか?

すでにありがとう、Bigflow

4

2 に答える 2

1
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

ファイル名を設定する行です。変更する必要があるのはこの行です。

于 2012-04-02T12:13:09.150 に答える
0

動作しましたが、まったく同じ問題はまだわかりませんが、このコードはうまくいきました:

private Uri outputFileUri;
    public void onLongPress(MotionEvent e) {
        // TODO Auto-generated method stub
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        File file = new File(Environment.getExternalStorageDirectory(), "/DCIM/Camera/new-photo-name.jpg");

        outputFileUri = Uri.fromFile(file);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
        startActivityForResult(intent, TAKE_PICTURE);
    }

onLongPress はジェスチャー (タッチ) アクションと関係があります。ここでボタンを使用することもできます。

public void onActivityResult(int requestCode, int resultCode, Intent data) {
      if (requestCode == TAKE_PICTURE){
            System.out.println("string of file name = "+outputFileUri.toString());
      }
}

本当に小さなコードですが、魅力のように機能します

于 2012-04-02T13:46:39.053 に答える