-
Notifications
You must be signed in to change notification settings - Fork 0
README En castellano
GalleryDialog es una librería creada para permitir la visualización de imágenes y de imágenes panorámicas 360, de una forma cómoda y sencilla. Permiten añadir un texto explicativo de la foto en un footer que aparece y se oculta de forma dinámica.
Actualmente solo funcionan con carga de imágenes mediante URL, utilizando Glide, en un futuro me gustaría añadir la opción de pasarle drawables o bitmaps ya creados.
Las imágenes normales utilizan la librería TouchImageView, la cual permite hacer zoom mediante gestos.
Las imágenes 360 utilizan la librería PanoramaGL, la cual permite hacer zoom mediante gestos y activar rotación sensorial.
GalleryDialog ->
GalleryDialog360 ->
(Ambas galerías tienen soporte para rotar la pantalla mediante el botón de rotación)
Ambas clases son DialogFragments, contando con una función estática newInstance() para facilitar su creación.
Recomiendo crear una función extendida para mostrar el dialog al clickar en un ImageView.
// GalleryDialog
private fun ImageView.setGalleryDialogOnClick(position: Int) = setOnClickListener {
GalleryDialog.newInstance(
images,
position,
GalleryDialogOptions(
fileProviderAuthorities = "com.marcosanz.app",
errorDrawable = R.drawable.ic_launcher_foreground,
rotation = false
)
).show(supportFragmentManager, "gallery_dialog")
}
// Gallery360Dialog
private fun ImageView.setGallery360DialogOnClick(position: Int) = setOnClickListener {
Gallery360Dialog.newInstance(
images360[position],
Gallery360DialogOptions(
rotation = true,
sensorialRotation = true
)
).show(supportFragmentManager, "gallery_dialog")
}
Mediante las clases DialogOptions se pueden personalizar algunos ajustes menores, como los textos que se muestran, permitir rotación o permitir rotación sensorial.
- Para poder compartir imágenes, se tiene que declarar un FileProvider y pasar mediante el GalleryDialogOptions el FileProviderAuthorities.
- Si el Activity tiene configurado en el Manifest el campo android:configChanges="layoutDirection" la rotación de pantalla no funcionará correctamente.
En la aplicación de prueba se pueden ver estas funcionalidades en acción.
Añade el repositorio Jitpack a tu fichero build.gradle
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Añade la dependencia en tu módulo
dependencies {
implementation 'com.github.MarcoSanz12:GalleryDialog:{ ULTIMA_VERSIÓN }'
}
GalleryDialog está disponible bajo licencia MIT. Lea el fichero LICENSE.txt para más información.