Cargar la imagen capturada en Cloudinary directamente en Android
Quiero capturar una imagen y subirla a Cloudinary directamente. ¿Cómo puedo saber el nombre de la imagen para establecerlo en la declaración de subida cloudinary.uploader().upload("nameofthepic", Cloudinary.emptyMap());
.
Aquí está mi código:
- Captura de pantalla en andengine da al revés la imagen de espejo
- Android: captura la pantalla del teléfono como una película
- Marco de vídeo de captura de android
- Programar una captura de pantalla del servicio
- Android sin memoria en la captura de imágenes
public class Camera extends ActionBarActivity implements View.OnClickListener { Button b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.camera); b= (Button) findViewById(R.id.button); b.setOnClickListener(this); } public static final int TAKE_PHOTO_REQUEST = 0; @Override public void onClick(View v) { Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(takePhotoIntent, TAKE_PHOTO_REQUEST); Map config = new HashMap(); config.put("cloud_name", "dkepfkeuu"); config.put("api_key", "552563677649679"); config.put("api_secret", "7n8wJ42Hr_6nqZ4aOMDXjTIZ4P0"); Cloudinary cloudinary = new Cloudinary(config); try { cloudinary.uploader().upload("", Cloudinary.emptyMap()); } catch (IOException e) { e.printStackTrace(); } } }
- Cómo evitar la captura de pantalla en Android
- Android> 4.0: Ideas para grabar / capturar audio interno (por ejemplo, STREAM_MUSIC)?
- Problema de orientación de la cámara en Android
- Archivo en blanco se guarda cuando se utiliza screencap programatically en Android
- Impedir que otras aplicaciones formen la pantalla de captura / grabación
- Convertir todo el contenido en un ScrollView a un mapa de bits?
- ¿Cómo fusionar un archivo de audio con una imagen o un archivo de vídeo en android?
- Convertir imágenes (mapa de bits) a un formato de vídeo popular en Android
El orden es como esto: Tome la foto-> excepto al archivo-> upload al cloudinary Aquí está el código:
File photoFile; @Override public void onClick(View v) { Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (takePhotoIntent.resolveActivity(getPackageManager()) != null) { // Create the File where the photo should go photoFile = null; try { photoFile = createImageFile(); } catch (IOException ex) { // Error occurred while creating the File } // Continue only if the File was successfully created if (photoFile != null) { takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile)); startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO); } } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_TAKE_PHOTO) { if (resultCode == RESULT_OK) { //File to upload to cloudinary Map config = new HashMap(); config.put("cloud_name", "dkepfkeuu"); config.put("api_key", "552563677649679"); config.put("api_secret", "7n8wJ42Hr_6nqZ4aOMDXjTIZ4P0"); Cloudinary cloudinary = new Cloudinary(config); try { cloudinary.uploader().upload(photoFile.getAbsolutePath(), Cloudinary.emptyMap()); } catch (IOException e) { e.printStackTrace(); } } else if (resultCode == RESULT_CANCELED) { // User cancelled the image capture //finish(); } } } private File createImageFile() throws IOException { // Create an image file name String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); String imageFileName = "capturedImage"; File storageDir = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_PICTURES); File image = File.createTempFile( imageFileName, /* prefix */ ".jpg", /* suffix */ storageDir /* directory */ ); // Save a file: path for use with ACTION_VIEW intents return image; }
Por lo tanto, está cargando realmente photoFile
que es la imagen realmente capturada.
Su agradable para poner la función de carga junto con algunas transformaciones de imagen (escala, cambiar el tamaño) en AsyncTask
porque las imágenes de la cámara en los teléfonos modernos son bastante grandes (en tamaño).
Espero eso ayude.
- Una solución en la nube para sincronizar la base de datos de aplicaciones en Android
- Gridview – Haga clic en la imagen para ver la imagen en Viewpager