Skip to content

README En castellano

MarcoSanz12 edited this page Jun 28, 2024 · 1 revision

GalleryDialog spanish_flag

Jitpack Link

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.

Demostración

GalleryDialog ->

GalleryDialog demo

GalleryDialog360 ->

GalleryDialog360 demo

(Ambas galerías tienen soporte para rotar la pantalla mediante el botón de rotación)

Como usar

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.

Configuración adicional

  • 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.

Instalació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 }'
	}

Licencia

GalleryDialog está disponible bajo licencia MIT. Lea el fichero LICENSE.txt para más información.

Clone this wiki locally