Cloudinary simplifica la gestión de medios y mejora la comodidad del usuario al entregar automáticamente imágenes y videos, mejorados y optimizados para cada usuario.
Cloudinary permite a los usuarios cargar imágenes / videos con dos opciones, «carga firmada» y «carga sin firmar», para comprender más aquí
En este tutorial, aprenderá cómo cargar fácilmente una imagen desde su dispositivo Android a su almacenamiento en la nube en menos de 5 minutos.
Comparto pasos sencillos para configurar una cuenta en la nube para cargar imágenes.
Primero, cree una cuenta con Cloudinary aquí, luego vaya a la barra de tareas y mantenga la siguiente información privada, la necesitará más adelante.
* Clave API
* Secretos de la API
* nombre de la nube
Paso 1: agregar una dependencia de la nube
Anunciore módulos dentro adiccion parte de tu build.gradle
archivo. Por ejemplo:
implementation group: 'com.cloudinary', name: 'cloudinary-android', version: '1.30.0'
Paso 2: inicializar MediaManager
class MainActivity : AppCompatActivity() {
var config: HashMap<String, String> = HashMap()override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
config.put("cloud_name", "your cloud name")
config.put("api_key", "your API Key")
config.put("api_secret", "your API secret")
MediaManager.init(this, config)
en el siguiente paso, necesitará una biblioteca de selección de imágenes o usar la selección de imágenes tradicional para Android, pero en este tutorial usará
Paso 3: use ImagePicker
Después de agregar las dependencias necesarias al archivo build.gradle, continúe y agregue lo siguiente.
ImagePicker.with(this)
.crop() //Crop image(Optional), Check Customization for more option
.compress(1024) //Final image size will be less than 1 MB(Optional)
.maxResultSize(1080, 1080) //Final image resolution will be less than 1080 x 1080(Optional)
.start()override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK) {
//Image Uri will not be null for RESULT_OK
val fileUri = data?.dataimagev.setImageURI(fileUri)//You can get File object from intent
val file: File = ImagePicker.getFile(data)!!//You can also get File Path from intent
fun uploadToCloudinary(filepath: String) {
val filePath: String = ImagePicker.getFilePath(data)!!
imgpath = filePath
uploadToCloudinary(filePath)
} else if (resultCode == ImagePicker.RESULT_ERROR) {
Toast.makeText(this, ImagePicker.getError(data), Toast.LENGTH_SHORT).show()
} else {
Toast.makeText(this, "Task Cancelled", Toast.LENGTH_SHORT).show()
}
}
MediaManager.get().upload(filepath).unsigned("kks8dyht").callback(object : UploadCallback {
override fun onSuccess(requestId: String?, resultData: MutableMap<Any?, Any?>?) {
Toast.makeText(applicationContext, "Task successful", Toast.LENGTH_SHORT).show()
}override fun onProgress(requestId: String?, bytes: Long, totalBytes: Long) {
}
override fun onReschedule(requestId: String?, error: ErrorInfo?) {
}
override fun onError(requestId: String?, error: ErrorInfo?) {
Toast.makeText(applicationContext, "Task Not successful"+ error, Toast.LENGTH_SHORT).show()
}override fun onStart(requestId: String?) {
Toast.makeText(applicationContext, "Start", Toast.LENGTH_SHORT).show()
}
}).dispatch()
}
Nota: Si utiliza cargas sin firmar, asegúrese de cargar la preferencia en su cuenta en la nube.
En su panel de control en la nube -> haga clic en configuración -> haga clic en cargar
Felicitaciones por subir exitosamente su imagen a la nube.
Consulta el código completo aquí