2

こんにちはみんな私は私の活動からカメラアプリケーションを使用しています。下のこの行を使用して、SDカードの指定した場所に画像を出力しようとしています。getImageUri()から取得した場所に画像を保存するのではなく、ファイルをカメラgallery.anyのアイデアに保存します。

intent.putExtra(MediaStore.EXTRA_OUTPUT, getImageUri());

//my getImageUri

private Uri getImageUri() {

    // Store image on sdcard

    String dir= Environment.getExternalStorageDirectory() +"/my_app/Datapics";

    File dirs = new File(dir);
    if (!dirs.exists()) {
        dirs.mkdirs();
    }
    Bundle extras = getIntent().getExtras();
    CAPTURE_TITLE = extras.getString(some.NAME);
    //EDIT if i add this line here 
    CAPTURE_TITLE= "whatever.png";
    //it will save my picture to the folder i want it to save to but with name 
    //whatever.png i'm getting my name from my previous activity and want 
    //to assign it to capture title

    File file = new File(dir , CAPTURE_TITLE+".jpg");

    Uri imgUri = Uri.fromFile(file);

    Log.e("get imageuri called: ",imgUri.toString());
//this is what I get from here
//04-28 19:42:33.835: E/get imageuri called:(2049):
 //file:///mnt/sdcard/my_app/Datapics/BlackbirdSat%20Apr%2028%2019%3A42.jpg


    Log.e("get imageuri called2: ",file.toString());
     //this is what i get here
//04-28 19:42:33.835: E/get imageuri called2:(2049)
//:/mnt/sdcard/my_app/Datapics/BlackbirdSat Apr 28 19:42.jpg
    return imgUri;

}
4

2 に答える 2

0

SDカードのアドレスを取得した後、カメラ画像を配置するフォルダ名を明示的に指定する必要があります。ここに画像を保存する「マイフォルダ」を置きます...

これを試して...

File defaultDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
// now specifing custom folder name in defaultDir
File myDir = new File(defaultDir, "My Folder");
// specify your picture name
String myPictureName = "Picture" + ".jpg";
// Making file name
String filename = myDir.getPath() + File.separator + myPictureName;
File pictureFile = new File(filename);
try {
    //Writing file to SD-Card
    FileOutputStream fos = new FileOutputStream(pictureFile);
    fos.write(data);
    fos.close();
} catch (Exception e) {
// ---
}

これがうまくいくことを願っています...

于 2012-04-29T07:35:39.243 に答える