PhotoEasy reduce la complejidad de solicitar una imagen a través de la cámara, con varias configuraciones que pueden ayudarlo a personalizar el evento.
Atención, PhotoEasy está optimizado para las versiones 16 a 30 y usa funciones que requieren la presencia de una cámara, por lo que si decides usarla en producción tu aplicación no será identificada en la playStore de dispositivos sin cámara.
Instalar
- Modo Gradle: agréguelo en su build.gradle raíz al final de los repositorios:
allprojects { repositories { ... maven { url 'https://jitpack.io' } } } add the dependency:
dependencies { implementation 'com.github.thorny84:PhotoEasy:1.0.2' }
- Modo Maven:
<repositories> <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> </repositories>
agregue la dependencia:
<dependency> <groupId>com.github.thorny84</groupId> <artifactId>PhotoEasy</artifactId> <version>1.0.2</version> </dependency>
Uso
Ahora usemos el constructor para inicializar PhotoEasy en la actividad o fragmento así:
PhotoEasy photoEasy = PhotoEasy.builder()
.setActivity(this)
.build()
el único método de creación obligatorio es setActivity
, sin PhotoEasy genera una IllegalArgumetException
. build()
abra la cámara de la aplicación del sistema.
El siguiente paso es obtener una imagen que hemos tomado. Para agregar onActivityResult
de actividad después super
:
photoEasy.onActivityResult(requestCode, resultCode, new OnPictureReady() {
@Override
public void onFinish(Bitmap thumbnail) {}
});
si falla la creación del mapa de bits, la miniatura será null
.
Tipo de Mimica
Los tipos MIME admitidos son: Jpeg
,Png
,Webp
. Para configurar el tipo de MIME, utilice el constructor de constructores con PhotoEasy.MimeType
:
PhotoEasy photoEasy = PhotoEasy.builder()
.setActivity(this)
.setMimeType(PhotoEasy.MimeType.imagePng)
.build()
El mimo predeterminado es Jpeg
Nombre de la imágen
Si queremos tener un nombre específico para el archivo de imagen, podemos hacer:
PhotoEasy photoEasy = PhotoEasy.builder()
.setActivity(this)
.setPhotoName("image name")
.build()
Tipo de almacenamiento
Elegimos dónde queremos colocar nuestro archivo de imagen. Especifique el tipo de uso de almacenamiento PhotoEasy.StorageType:
PhotoEasy photoEasy = PhotoEasy.builder()
.setActivity(this)
.setStorageType(PhotoEasy.StorageType.media)
.build()
Hay tres posibilidades de almacenamiento en photoeasy:
PhotoEasy.StorageType.internal
Almacenamiento interno específico de la aplicación, destinado al uso exclusivo de su aplicación, no accesible para otras aplicaciones. La API cifra 29 imágenes.PhotoEasy.StorageType.external
Almacenamiento externo específico de la aplicación, estas imágenes están disponibles para otras aplicaciones solo con permisos.PhotoEasy.StorageType.media
Almacenamiento en el directorio de medios, estas imágenes son visibles para todas las aplicaciones sin los permisos necesarios. El tipo de almacenamiento predeterminado esPhotoEasy.StorageType.external
. Algunos de estos requieren permisos solicitados por el usuario …
Autorizaciones
Utilizando PhotoEasy.StorageType.external
o PhotoEasy.StorageType.media
tienes que configurar permisos para guardar imágenes, al menos hasta API 28. PhotoEasy administra los permisos internamente pero si quieres administrarlos tienes que configurarlos:
PhotoEasy photoEasy = PhotoEasy.builder()
.setActivity(this)
.enableRequestPermission(false)
.build()
esto podría generar excepciones inesperadas si usted no maneja los permisos de manera excelente. Dejando la administración de permisos a PhotoEasy, pero desea controlar las acciones después de la elección del usuario, puede usar:
PhotoEasy photoEasy = PhotoEasy.builder()
.setActivity(this)
.setExternalStoragePermission(myExternalStoragePermission)
.build()
clase de extensión:
public class ExtStoPer extends ExternalStoragePermission {
public ExtStoPer(Activity activity) {
super(activity,RequestMode.alwaysRequest);
}
@Override
public void requestPermissionRationale() {}
@Override
public void requestPermission() {}
}
RequestMode
son los puntos para los que desea verificar los permisos:
RequestMode.alwaysRequest
siempre pedirá permiso al usuario.RequestMode.requestRationalControl
solo le dará el control la segunda vez que se le pida permiso al usuario.RequestMode.allControl
te dará un control total.
Directorio personalizado
Con PhotoEasy.StorageType.media
podemos guardar nuestra imagen en un directorio personalizado:
PhotoEasy photoEasy = PhotoEasy.builder()
.setActivity(this)
.setStorageType(PhotoEasy.StorageType.media)
.saveInCustomDirectory("Custom_directory")
.build()
para tener un directorio personal en la aplicación de la galería
.