EasyImagePicker
Libreria de facil implementacion, para Android nativo, se pueden obtener imagenes desde la galeria y desde la camara.
- Se pueden agregar hasta 10 imagenes
- Eliminar imagen despues agregarla
- Visualizar imagen despues de agregarla
- Posibilidad de cargar Imagenes desde una Url ( importante para cuando editas )
- Para subir te devuelve un arreglo de Uri's para que las puedas manejar tu conveniencia.
Instalación
Agregamos las 2 url's del repositorio al build.gradle root
allprojects {
repositories {
...
maven {
url 'https://jitpack.io'
}
maven {
url 'http://dl.bintray.com/raphaelbussa/maven'
}
}
}
Agregarmos la url de la dependencia al build.gradle del folder /app
dependencies {
compile 'com.github.oswaldo89:EasyImagePicker-library:1.0.2'
}
Agregamos el contenedor principal, las pruebas se hicieron dentro de un padre LinearLayout en orientación vertical.
<com.oswaldogh89.picker.ImagePicker
android:id="@+id/picker"
android:layout_width="match_parent"
android:layout_height="wrap_content"> </com.oswaldogh89.picker.ImagePicker>
Dentro del activity en donde usaremos el control, instanciamos.
ImagePicker picker = (ImagePicker) findViewById(R.id.picker);
picker.setMainactivity(ExampleUsage.this);
Podemos Agregar un color hexadecimal, para el contorno de las imagenes que se van agregando.
picker.SetBorderImageColor("#075e55");
Podemos Habilitar/Inhabilitar el boton para borrar todas las imagenes.
picker.enableDelateAll(false);
Por ultimo, para visualizar las imagenes hay que cacharlas una vez seleccionada desde la camara o la galeria, se hace con el siguiente codigo a la Activity en donde estamos trabajando.
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch (requestCode) {
case 0:
if (resultCode == RESULT_OK) {
picker.AddNewImage(imageReturnedIntent);
}
break;
case 1:
if (resultCode == RESULT_OK) {
picker.AddNewImage(imageReturnedIntent);
}
break;
}
}
Si estamos usando el control para una edicion de datos, y necesitamos que al inciar cargue unas urls, agregamos el siguiente codigo.
//Si vas a cargar imagenes en el control desde una URL ArrayList<String> urls = new ArrayList<>();
urls.add("https://static.independent.co.uk/s3fs-public/styles/article_small/public/thumbnails/image/2017/01/19/15/earth-from-space.jpg");
urls.add("http://www.slate.com/content/dam/slate/blogs/bad_astronomy/2016/03/09/shutterstock_earthfromhubble.jpg.CROP.original-original.jpg");
picker.addImagesFromUrl(urls);
Por ultimo , cuando ya quieras enviar las imagenes al servidor o guardarlas. las obtienes de la siguiente manera.
HashMap<Integer, String> images = picker.GetPathImages();
for (Map.Entry entry : images.entrySet()) {
Log.v("IMAGENES_AGREGADAS", "TAMAÑO : " + entry.getValue());
}
Librerias usadas