Cómo guardar imágenes de la cámara en Android a la carpeta específica?
Hola, soy nuevo en Android y he estado intentando crear una aplicación recientemente. Básicamente, lo que quiero hacer es permitir al usuario hacer su propia carpeta y luego ir a una actividad que contiene un botón para iniciar la cámara. Desde allí quiero poder lanzar la cámara y guardar las imágenes de la cámara en la carpeta recién creada. Tengo problemas con la última parte de guardar las imágenes de la cámara en la carpeta recién creada.
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.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); @Override public void onClick(View v) { final String name = text.getText().toString(); final String placeName = text2.getText().toString(); String place = placeName.substring(0,3); String direct = name + place ; File folder = new File("/sdcard/CameraTest/" + direct + "/"); folder.mkdirs(); Intent myIntent = new Intent(CameraTestActivity.this, Press.class); myIntent.putExtra("key", "/sdcard/CameraTest/" + direct + "/"); startActivity(myIntent); } });
Desde aquí paso a esta actividad:
- Cómo determinar el ancho y la altura del video en Android
- SurfaceView en blanco al reproducir vídeo usinng mediaplayer
- ¿Cómo ejecutar los comandos ffmpeg de línea de comandos en el android?
- SetVideoSurfaceTexture ha fallado: -22 en mediaplayer
- Subir archivos no funciona con TransferUtility Amazon S3 en Android
public class Press extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.afterenter); final String direct = this.getIntent().getStringExtra("key"); // TODO Auto-generated method stub Button p = (Button) findViewById(R.id.button2); p.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent camera= new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(camera, 1); } }); Button np = (Button) findViewById(R.id.button3); np.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent next = new Intent(Press.this, CameraTestActivity.class); startActivity(next); } }); } }
Por favor, dime cómo guardar las imágenes de la cámara en la carpeta recién creada. Quiero que el usuario pueda tomar varias fotos y luego guardar estas varias imágenes en esa carpeta específica. ¡Gracias por adelantado!
- Cómo evitar un retraso de 15 segundos / caché en Android Media Player al reproducir la secuencia
- Cómo simular los botones de control de medios de hardware en un emulador de Android
- Android - Transmisión adaptativa de velocidad de bits. (HLS) Calidad del flujo
- ¿Oiga el cambio de volumen?
- Cómo rotar video * .mp4 en SurfaceView?
- Android Media Grabación utilizando hilos
- Cómo crear ecualizador para android
- Phonegap Media API - Grabar y reproducir audio - Android
Agregue este código antes de llamar a la actividad de la cámara,
Uri uriSavedImage=Uri.fromFile(new File("/sdcard/flashCropped.png")); camera.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); startActivityForResult(camera, 1);
Probar esto
Path = Environment.getExternalStorageDirectory () + "/photo1.jpg";
File file = new File(path); Uri outputFileUri = Uri.fromFile(file); Intent intent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY);
Y que havent implementado onActivityResult …. probar esto puede ayudar u
public void onActivityResult(int requestCode, int resultCode, Intent data) { System.gc(); if (requestCode == CAPTURE_IMAGE_ACTIVITY) { if (resultCode == Activity.RESULT_OK) { try { // Call function MakeFolder to create folder structure if // its not created if(imageBitmap != null) { imageBitmap = null; imageBitmap.recycle(); } MakeFolder(); // Get file from temp1 file where image has been stored BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 3; imageBitmap = BitmapFactory.decodeFile(path, options); imgForPhotograph.setImageBitmap(imageBitmap); isImageTaken = true; // Name for image IMAGEPATH = getString(R.string.chassisImage) + System.currentTimeMillis(); SaveImageFile(imageBitmap,IMAGEPATH); } catch (Exception e) { Toast.makeText(this, "Picture Not taken", Toast.LENGTH_LONG).show(); e.printStackTrace(); } } }
Espero que lo entiendas
Debe agregar la ubicación del archivo a la intención de captura de la imagen. Por ejemplo:
camera.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, [file location]);
Echa un vistazo aquí