2015-03-14 24 views
5

Bir fotoğraf çekmek ve onu doğrudan Cloudinary'ye yüklemek istiyorum. Picanın adını, yükleme bildirimi cloudinary.uploader().upload("nameofthepic", Cloudinary.emptyMap());'da ayarlamak için nasıl tanıyabilirim.Yakalanan görüntüyü doğrudan Android'de Cloudinary'ye yükleyin

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(); 
     } 
    } 
} 
+0

Aşağıdaki cevap sizin için işe yaradıysa, diğer kullanıcıların bu işlevin güvenebileceği şekilde işaretlenmiş bir yanıt olarak kabul edebilir misiniz? – santafebound

cevap

6

sipariş şu şekildedir:: Resim-> İşte cloudinary için> yükleme Dosya- kaydetmek çekeriz kod edilir: Yani

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; 
     } 

İşte

benim kodudur aslında çekilen görüntü olan photoFile yüklüyor. AsyncTask numaralı telefondaki bazı görüntü dönüşümleri (ölçek, yeniden boyutlandırma) ile birlikte yükleme işlevini, modern telefonlardaki fotoğraf makinesi görüntüleri oldukça büyük olduğundan (boyut olarak),

Yardım edin.

+0

m hat üzerinde soyut yöntem hatası alıyorum :::: cloudinary.uploader(). Upload (photoFile.getAbsolutePath(), Cloudinary.emptyMap()); – Pranita

+1

kendimce çözüm buldu :) Cloudinary.emptyMap() artık ObjectUtils.emptyMap() ile değiştirildi – Pranita

İlgili konular