En Android , Discrete SeekBar es solo un avance de ProgressBar al igual que SeekBar, la única diferencia entre SeekBar y SeekBar discreto es que en SeekBar discreto, solo podemos establecer el valor en valores discretos como 1, 2, 3, etc.
En este artículo, discutiremos cómo crear un SeekBar en Kotlin.
Diferentes atributos de Android Discrete SeekBar
Atributos XML | Descripción |
---|---|
android: máximo | Establece el valor máximo |
Android: min | Establece el valor mínimo |
Android: progreso | Especifica el valor de progreso ya establecido |
android:progresoDibujable | Establece dibujable del modo de progreso. |
Android:pulgar | Ayuda a dibujar un pulgar en seekBar.. |
Android: tinte de pulgar | Configure el modo de fusión para aplicar el tinte del pulgar. |
android:thumbTintMode | Establezca el tinte para aplicar en la marca dibujable. |
android:tickMarkTint | Establezca el modo de fusión utilizado para aplicar el tinte de marca de verificación. |
android:tickMarkTintMode | Establezca el modo de fusión utilizado para aplicar el tinte de marca de verificación. |
android:fondo | Establece el fondo de la vista |
Android: identificación | Establece una identificación única de la vista |
Android: elevación | Establece la profundidad z base de la vista |
El primer paso es crear un nuevo proyecto en Android Studio. Para ello sigue estos pasos:
- Haga clic en Archivo, luego en Nuevo y luego en Nuevo proyecto, y asigne el nombre que desee.
- Luego, seleccione Compatibilidad con el idioma Kotlin y haga clic en el botón siguiente.
- Seleccione SDK mínimo, lo que necesite
- Seleccione Actividad vacía y luego haga clic en finalizar .
Después de hacer esto, verá algunos directorios en el lado izquierdo después de que su proyecto/gradle haya terminado de cargarse. Debe tener un aspecto como este:
Después de eso, tenemos que diseñar nuestro diseño. Para eso necesitamos trabajar con el archivo XML. Ve a app > res > layout y pega el siguiente código:
Modificar archivo activity_main.xml
XML
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"> <SeekBar android:id="@+id/seekBar" style="@style/Widget.AppCompat.SeekBar.Discrete" android:layout_width="match_parent" android:layout_height="wrap_content" android:min="1" android:max="10" android:progress="7"/> </RelativeLayout>
Nota:
style=”@style/Widget.AppCompat.SeekBar.Discrete”
Este estilo se usa para mostrar la barra de búsqueda para que funcione con valores discretos.
Crear SeekBar en el archivo MainActivity.kt
Abra app/src/main/java/yourPackageName/MainActivity.kt y realice los siguientes cambios:
Java
package com.geeksforgeeks.myfirstKotlinapp import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.SeekBar import android.widget.Toast class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //accessing the seekbar from our layout val seekBar = findViewById<SeekBar>(R.id.seekBar) seekBar?.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) { //here we can write some code to do something when progress is changed } override fun onStartTrackingTouch(seekBar: SeekBar) { //here we can write some code to do something whenever the user touche the seekbar } override fun onStopTrackingTouch(seekBar: SeekBar) { // show some message after user stopped scrolling the seekbar Toast.makeText(this@MainActivity, "Discrete Value of SeekBar is " + seekBar.progress, Toast.LENGTH_SHORT).show() } }) } }
Archivo AndroidManifest.xml
XML
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="i.apps.myapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>