El arsenal de Android – Selectores de fecha y hora

Una biblioteca de selección de intervalo de tiempo circular personalizable, fácil de usar y funcional para Android. Use esta biblioteca para imitar el iOS de Apple o el selector de hora de acostarse de Samsung.

De Cuentagotas Joery

capturas de pantalla

aplicación de juegos

Descarga la aplicación de juegos de Google Play, con esta aplicación puedes probar todas las funciones e incluso generar XML con la configuración seleccionada.

Para comenzar

Esta biblioteca está disponible en Maven Central, agregue la siguiente dependencia a la suya construir.gradle:

implementation 'nl.joery.timerangepicker:timerangepicker:1.0.0'

Definir TimeRangePicker en diseño XML con atributos personalizados. Ver el Configuración sección para más información.

<nl.joery.timerangepicker.TimeRangePicker
    android:id="@+id/picker"
    android:layout_width="300dp"
    android:layout_height="wrap_content"
    app:trp_thumbIconEnd="@drawable/ic_alarm"
    app:trp_thumbIconStart="@drawable/ic_moon"
    app:trp_endTime="6:30"
    app:trp_startTime="22:00" />

Reciba notificaciones cuando cambie el tiempo o la duración:

picker.setOnTimeChangeListener(object : TimeRangePicker.OnTimeChangeListener {
    override fun onStartTimeChange(startTime: TimeRangePicker.Time) {
        Log.d("TimeRangePicker", "Start time: " + startTime)
    }

    override fun onEndTimeChange(endTime: TimeRangePicker.Time) {
        Log.d("TimeRangePicker", "End time: " + endTime.hour)
    }

    override fun onDurationChange(duration: TimeRangePicker.TimeDuration) {
        Log.d("TimeRangePicker", "Duration: " + duration.hour)
    }
})

Manejo del selector programáticamente

Administrar tiempo

Ejemplos de cómo establecer y recuperar mediante programación la hora de inicio, las propiedades idénticas están disponibles para la hora de finalización.

// Set new time with 'Time' object to 12:00
picker.startTime = TimeRangePicker.Time(12, 0)
// Set new time by minutes
picker.startTimeMinutes = 320

Hora Al recuperar la hora de inicio o finalización, la biblioteca proporcionará una TimeRangePicker.Time objeto.

  • Usar time.hour, time.minute o time.totalMinutes para compensar el tiempo literal.
  • Usar time.calendar recuperar un java.util.Calendar objeto.
  • Usar time.localTime recuperar un java.time.LocalTime objeto. (Disponible desde API 26)

Gestión de la duración

Al recuperar la duración entre las horas de inicio y finalización, la biblioteca proporcionará una TimeRangePicker.Duration objeto.

  • Usar duration.hour, duration.minute o duration.durationMinutes para recuperar la duración literal.
  • Usar duration.classicDuration recuperar un javax.xml.datatype.Duration objeto. (Disponible desde API 8)
  • Usar duration.duration recuperar un java.time.Duration objeto. (Disponible desde API 26)

Escuche para iniciar y detener el arrastre

Se llama a este oyente cada vez que un usuario comienza o deja de arrastrar. También proporcionará qué pulgar estaba arrastrando el usuario: principio, fin o ambos pulgares. Puede devolver falso en ònDragStart método para evitar que el usuario arrastre el pulgar.

picker.setOnDragChangeListener(object : TimeRangePicker.OnDragChangeListener {
    override fun onDragStart(thumb: TimeRangePicker.Thumb): Boolean {
        // Do something on start dragging
        return true // Return false to disallow the user from dragging a handle.
    }

    override fun onDragStop(thumb: TimeRangePicker.Thumb) {
        // Do something on stop dragging
    }
})

Configuración

Los atributos enumerados a continuación se pueden utilizar para configurar la apariencia gráfica del selector. Tenga en cuenta que todos estos valores también se pueden establecer mediante programación mediante propiedades.

Hora

Atributo Descripción Defecto
trp_startTime Establezca la hora de inicio proporcionando una hora con formato mmm. 0:00
trp_startTimeMinutes Configure la hora de inicio proporcionando minutos entre 0 y 1440 (24 horas). 0
trp_endTime Establezca la hora de finalización proporcionando una hora con formato mmm. 8:00
trp_endTimeMinutes Configure la hora de finalización proporcionando minutos entre 0 y 1440 (24 horas). 480
trp_minDuración Establezca la duración mínima seleccionable proporcionando una duración de formato mmm.
trp_maxDuración Establezca la duración máxima seleccionable proporcionando una duración de formato mmm.
trp_maxDuraciónMinutos Establezca la duración máxima seleccionable proporcionando minutos entre 0 y 1440 (24 horas). 480
trp_minDuraciónMinutos Establezca la duración mínima seleccionable proporcionando minutos entre 0 y 1440 (24 horas). 0
trp_stepTimeMinutes Determina en qué intervalo se debe redondear la hora. Configurarlo en un número menos preciso (por ejemplo, 10 minutos) hace que sea más fácil para el usuario seleccionar el tiempo deseado. 10

Deslizador

Atributo Descripción Defecto
trp_sliderAncho El ancho de la rueda de desplazamiento. 8 dp
trp_sliderColor El color de fondo de la rueda de desplazamiento. #E1E1E1
trp_sliderRangeColor El color de la parte activa de la rueda de desplazamiento. Android: colorPrimary
trp_sliderRangeGradientStart Establece el color de degradado inicial de la parte activa de la rueda del cursor.

Tenga en cuenta que ambos trp_sliderRangeGradientStart Y trp_sliderRangeGradientEnd debe estar configurado.

Consejo: Selecciona el pulgarColor transparente para imitar el control deslizante de Apple iOS.

trp_sliderRangeGradientStart Opcional para degradado: establece el color del degradado medio de la parte activa de la rueda deslizante.
trp_sliderRangeGradientEnd Establece el color del degradado final de la parte activa de la rueda de desplazamiento.

Tenga en cuenta que ambos trp_sliderRangeGradientStart Y trp_sliderRangeGradientEnd debe estar configurado.

Pulgar

Atributo Descripción Defecto
trp_thumbIconEmpezar Establecer icono de pulgar de inicio.
trp_thumbIconEnd Establezca el ícono del pulgar final.
trp_thumbTamaño El tamaño del pulgar inicial y final. 28 dp
trp_thumbSizeActiveGrow La cantidad de crecimiento en tamaño cuando se arrastra una pulgada. 1.2
trp_thumbColor El color de fondo de los pulgares. Android: colorPrimary
trp_thumbIconColor El color (tono) de los íconos dentro de los pulgares. blanco
trp_thumbIconSize El tamaño de los iconos de los pulgares. 24 dp

Reloj

Atributo Descripción Defecto
trp_clock Visible Si la esfera del reloj en el centro debe ser visible. verdadero
cara_del_reloj Hay dos caras de reloj diferentes (aspecto de reloj interno) que puede usar, las cuales imitan las aplicaciones de Reloj:
MANZANA

SAMSUNG
MANZANA
trp_clockLabelSize El tamaño del texto de las etiquetas de tiempo en el reloj (1, 2, 3, etc.). Se recomienda establecer este valor como píxeles independientes de la escala (sp). 16 sp
trp_clockLabelColor Establece el color del texto de las etiquetas de hora en el reloj. Android: textColorPrimary
trp_clockIndicatorColor Establece el color de las pequeñas líneas de la marca de tiempo en el reloj. Android: textColorPrimary
trp_clockRenderer Configure el renderizador de reloj pasando el nombre de clase completo (con paquetes).
Tenga en cuenta que debe agregar @Mantener anotación a su clase de renderizador personalizada.
La clase de representación debe tener un constructor público con un parámetro: TimeRangePicker.
Luego, el renderizador se creará llamando a ese constructor.
nl.joery.timerangepicker.DefaultClockRenderer

Créditos

  • La aplicación Watch de Samsung y Apple se utilizó como fuente de inspiración, ya que ambos implementan este selector de manera diferente.

Licencia

MIT License

Copyright (c) 2021 Joery Droppers (https://github.com/Droppers)

Permission is hereby granted, free of charge, to any person obtaining a copy
of this Software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

.

About MiReal

Compruebe también

El arsenal de Android – Sistema de archivos

Resumen Descripción general Cuanto más alto sea el nivel de la API, más acceso restringido …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

holiganbet giriş
- elexbet yeni giriş -

bahsegel bahis

- anadolu casino giriş -
betboo giriş
-

Personel Sağlık