¿Cómo crear una barra deslizante de desbloqueo en Android?

Un SeekBar es una extensión de ProgressBar que agrega un pulgar que se puede arrastrar. El usuario puede tocar el pulgar y arrastrar hacia la izquierda o hacia la derecha para establecer el nivel de progreso actual o usar las teclas de flecha. SeekBar es un elemento de interfaz de usuario útil en Android que permite la selección de valores enteros mediante una interfaz de usuario natural. Un ejemplo de SeekBar es el control de brillo y volumen de su dispositivo. Pero, ¿sabía que una barra de búsqueda podría implementarse como una barra deslizante de desbloqueo? A través de este artículo, queremos compartir con usted cómo se puede implementar una barra deslizante de desbloqueo usando un SeekBar.

Diferencia entre una barra de búsqueda y una barra de progreso

SeekBar tiene los mismos atributos que ProgressBar. Pero la única diferencia es que el usuario determina el progreso moviendo un control deslizante (pulgar) en SeekBar. Para agregar una SeekBar a un archivo de diseño (XML), puede usar el elemento <SeekBar>. A continuación se muestra un ejemplo de la barra deslizante de desbloqueo.

An example of Unlock Slide Bar

¿Dónde se puede utilizar?

  • Para desbloquear una pantalla, desbloquear una actividad, ir a una actividad (lo que discutimos en este artículo).
  • Usando un concepto similar para construir Juegos.
  • Confirmación de un pago en Pasarelas de Pago.
  • Para apagar las alarmas.

kotlin

Sample GIF

Acercarse

Por favor, consulte los siguientes puntos que definen el módulo para la aplicación que implementamos:

  • La aplicación tiene 2 actividades, MainActivity y MainActivity2, ambas tienen sus respectivos archivos de diseño actividad_principal y actividad_principal2.
  • La SeekBar está presente en la Primera Actividad, es decir, declarada en el archivo activity_main.
  • Hemos programado SeekBar de tal manera que cuando el usuario la desliza hasta el final, el usuario es llevado a una nueva actividad, es decir, MainActivity2. De lo contrario, SeekBar establece su progreso en 0 y muestra un mensaje Toast .
  • Se proporciona una vista de texto en la primera actividad para mostrar el progreso de SeekBar en tiempo real.

Para crear una Slide-Bar en Android, seguimos los siguientes pasos:

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.

Paso 2: trabajar con el archivo activity_main.xml

Ahora vaya al archivo activity_main.xml que representa la interfaz de usuario de la aplicación. Cree una barra de búsqueda y una vista de texto como se muestra. actividad_principal.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <!--Seek Bar, set max to 100 to view the progress with respect to 100-->
    <!--progressDrawable is the color you want for your progress track-->
    <!--thumb is the icon that user will slide over the track-->
    <SeekBar
        android:id="@+id/sbb"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:max="100"
        android:progressDrawable="@color/colorPrimaryDark"
        android:thumb="@mipmap/ic_launcher"
        tools:ignore="MissingConstraints" />
  
    <!--This textView will display the progress of SeekBar-->
    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />
  
</RelativeLayout>

Paso 3: trabajar con el archivo MainActivity.kt

Vaya al archivo MainActivity.kt y consulte el siguiente código. MainActivity.kt

Kotlin

import android.content.Intent
import android.os.Bundle
import android.widget.SeekBar
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // declare the textView from the layout file
        val tv = findViewById<TextView>(R.id.tv)
  
        // declare the SeekBar from the layout file
        val sb = findViewById<SeekBar>(R.id.sbb)
  
        // Action when SeekBar is used
        sb.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
  
  
            // Member Implementation (Required)
            // Keeps the track if touch was lifted off the SeekBar
            override fun onStopTrackingTouch(seekBar: SeekBar) {
  
                // If touch was lifted before the SeekBar progress was 100
                // Make a Toast message "Try Again" and set the progress to 0
                if (seekBar.progress < 100) {
                    Toast.makeText(applicationContext, "Try Again", Toast.LENGTH_SHORT).show()
                    seekBar.progress = 0
                }
            }
  
            // Member Implementation (Required)
            override fun onStartTrackingTouch(seekBar: SeekBar) {
  
                // Do anything or Nothing
  
            }
  
            // Member Implementation (Required)
            // Keeps the track of progress of the seekbar
            override fun onProgressChanged(
                seekBar: SeekBar, progress: Int,
                fromUser: Boolean
            ) {
                // Show the progress when progress was less than 100
                if (progress < 100) {
                    tv.text = "Progress : $progress"
                }
  
                // If the progress is 100, take the user to another activity
                // Via Intent
                if (progress == 100) {
                    startActivity(
                        Intent(
                            applicationContext,
                            MainActivity2::class.java
                        )
                    )
                }
            }
        })
    }
}

Paso 4: Crea otra actividad

Cree otra actividad con un archivo de diseño haciendo clic con el botón derecho en la carpeta de la aplicación > Nuevo > Actividad > Actividad vacía . Y consulte el siguiente código. Los únicos cambios realizados en el archivo activity_main2.xml , no se realizaron cambios en el archivo MainActivity2.kt . A continuación se muestra el núcleo de los archivos activity_main2.xml y MainActivity2.kt .

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity2">
  
    <!--activity_main2.xml file that shows
        "New Activity" message in a textView-->
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="New Activity"
        android:textSize="50sp" />
  
</RelativeLayout>

Kotlin

// No Changes in this file
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
  
class MainActivity2 : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main2)
    }
}

Salida: ejecutar en el emulador

Publicación traducida automáticamente

Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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