0

I first created the main thing in which the user can create and name the folder, pushing the button moves to the next the camera's. After the folder is created but the images can not save them in the path that comes dall'intent. I am confused totally and I apologize for my English

        final String direct = this.getIntent().getStringExtra("key");
public static final int MEDIA_TYPE_IMAGE = 1;

/** Create a file Uri for saving an image or video */

Uri uriSavedImage=Uri.fromFile(new File( direct   + "photo.jpg"));

final Uri getOutputMediaFileUri(int type){
      return Uri.fromFile(getOutputMediaFile(type));
}

/** Create a File for saving an image or video */
final  File getOutputMediaFile(int type){
    // To be safe, you should check that the SDCard is mounted
    // using Environment.getExternalStorageState() before doing this.

    File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
              Environment.DIRECTORY_PICTURES ), "direct" );
    // This location works best if you want the created images to be shared
    // between applications and persist after your app has been uninstalled.

    // Create the storage directory if it does not exist
    if (! mediaStorageDir.exists()){
        if (! mediaStorageDir.mkdirs()){
            Log.d("MyCameraApp", "failed to create directory");
            return null;
        }
    }

    // Create a media file name
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
    File mediaFile;

    if (type == MEDIA_TYPE_IMAGE){
        mediaFile = new File(mediaStorageDir.getPath() + File.separator +
        "IMG_"+ timeStamp + ".jpg");
    }  else {
        return null;
    }

    return mediaFile;
}

}

Main is this

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    Button b = (Button) findViewById(R.id.button1);
    b.setOnClickListener(new OnClickListener() {


        EditText text = (EditText)findViewById(R.id.editText1); 
        EditText text2 = (EditText)findViewById(R.id.editText2);
        EditText text3 = (EditText)findViewById(R.id.editText3);



        @Override



        public void onClick(View v) {



            final String name = text.getText().toString();
            final String placeName = text2.getText().toString(); 
            final String dettaglio =text3.getText().toString();



            String place = placeName.substring(0,3);
            String direct = name + place + dettaglio ;

            File folder = new File("/sdcard/CameraTest/" + direct + "/");
            folder.mkdirs();



            Intent myIntent = new Intent(MainActivity.this, CameraView.class);
            myIntent.putExtra("key", "/sdcard/CameraTest/" + direct + "/");
            startActivity(myIntent);



        }
    });

}

}

4

1 回答 1

0

我认为这对你有用:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);


      Button b = (Button) findViewById(R.id.button1);
      b.setOnClickListener(new OnClickListener() {


        EditText text = (EditText) findViewById(R.id.editText1);
        EditText text2 = (EditText) findViewById(R.id.editText2);
        EditText text3 = (EditText) findViewById(R.id.editText3);


        @Override


        public void onClick(View v) {


            final String name = text.getText().toString();
            final String placeName = text2.getText().toString();
            final String dettaglio = text3.getText().toString();

            String place = placeName.substring(0, 3);
            String direct = name + place + dettaglio;

            Intent myIntent = new Intent(MainActivity.this, CameraView.class);
            myIntent.putExtra("key", "/CameraTest/" direct + "/");
            startActivity(myIntent);


        }
    });

}

在您的第二个活动中,您将以这种方式使用您的函数获得一个 Uri:

final String direct = this.getIntent().getStringExtra("key");

Uri uriSavedImage = getOutputMediaFileUri();

final Uri getOutputMediaFileUri(){
    return Uri.fromFile(getOutputMediaFile());
}

final  File getOutputMediaFile(){
    // To be safe, you should check that the SDCard is mounted
    // using Environment.getExternalStorageState() before doing this.

    File mediaStorageDir = new File(Environment.getExternalStorageDirectory().getPath().toString(), direct );
    // This location works best if you want the created images to be shared
    // between applications and persist after your app has been uninstalled.

    // Create the storage directory if it does not exist
    if (! mediaStorageDir.exists()){
        if (! mediaStorageDir.mkdirs()){
            Log.d("MyCameraApp", "failed to create directory");
            return null;
        }
    }

    File mediaFile = new File(mediaStorageDir.getPath() + "photo.jpg");

    return mediaFile;
}

不要忘记为清单文件添加权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

希望我的回答对你有所帮助。

于 2013-09-17T07:37:51.977 回答