Android Kotlin ProgressBar Example
Hola continuamos con este curso y en esta ocasión les traemos el control ProgressBar utilizando programación Kotlin. Desarrolla este ejemplo en Android para que puedas implementarlo en tus aplicacioines.Crear Proyecto en Android ProgressBar Tutorial (Aquí)
Crearemos nuestro proyecto en Android para crear paso a paso este tutorial sobre el ProgressBar usando Kotlin.Atributos diferentes de Android ProgressBar Widget
Algunos de los atributos populares de Android ProgressBar Widget son:
No. | Atributos XML | Descripción |
---|---|---|
1 | android:indeterminate | Se usa para establecer el modo indeterminado de la barra de progreso. |
2 | android:indeterminateDrawable | e usa para establecer drawable de la barra de progreso para el modo indeterminado. |
3 | android:indeterminateDuration | Se usa para establecer la duración de la animación indeterminada. |
4 | android:max | Se usa para establecer el valor máximo. |
5 | android:min | Se usa para establecer el valor mínimo. |
6 | android:progress | Se usa para establecer el valor de progreso predeterminado (entre 0 y el valor máximo). |
7 | android:progressDrawable | Se usa para establecer drawable utilizado para el modo de progreso. |
8 | android:secondaryProgress | Se usa para configurar el valor de progreso secundario (entre 0 y el valor máximo) |
Algunos de los atributos populares de Android ProgressBar heredados de View son:
No. | Atributos XML | Descripción |
---|---|---|
1 | android:alpha | Se usa para establecer alfa de vista. |
2 | android:background | Se usa para establecer fondo dibujable para la vista. |
3 | android:clickable | Se usa para establecer si se puede hacer clic en esta vista o no. |
4 | android:elevation | Se usa para establecer la base de profundidad z de la vista. |
5 | android:id | Se usa para establecer el id de la vista. Id debe ser único. |
6 | android:onClick | Se usa para establecer la acción a realizar cuando se hace clic en esta vista. |
7 | android:padding | Se usa para establecer el relleno de la vista. |
8 | android:visibility | Se usa para establecer la visibilidad de la vista. Por ejemplo, VISIBLE, INVISIBLE, etc. |
Android ProgressBar - Ejemplo de Kotlin: en este Tutorial de Android, aprenderemos a indicar el progreso de una operación usando ProgressBar. Utilizaremos una aplicación de ejemplo de Android con operación ficticia cuyo progreso debe indicarse al usuario.
ProgressBar se puede usar tanto para el progreso Determinado como para el Indeterminado de una tarea.
Indeterminado ProgressBar se usa cuando no puede estimar o seguir el progreso de una tarea. Por defecto, ProgressBar está en modo Indeterminado.
Determina ProgressBar se usa cuando puedes estimar o rastrear el progreso de una tarea. Para determinar ProgressBar, agregue la propiedad progress, android: progress = "0", en el archivo de diseño para ProgressBar View.
Android Kotlin ProgressBar (Indeterminate Mode)
Android Indeterminate ProgressBar - Kotlin Ejemplo: en este tutorial de Android, aprenderemos a indicar el progreso de una tarea cuyo progreso no se puede rastrear. Aquí no indicaremos ningún número específico para el progreso, pero con una vista progresiva indefinida. Una tarea de ejemplo podría ser la carga de la página, el progreso es indefinido, pero debemos informar al usuario que la tarea de carga de la página está ocurriendo, por lo que ProgressBar está en modo Indefinido.
Crear Diseño ProgressBar Kotlin Example
Crearemos el diseño de nuestra aplicación y quedaría de la siguiente forma.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
android:gravity="center"
tools:context=".MainActivity">
<!--Determinate-->
<Button
android:id="@+id/btnDeterminate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="Do some stuff" />
<ProgressBar
style="@android:style/Widget.ProgressBar.Horizontal"
android:id="@+id/prgBarDeterminate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:progress="0"/>
<!--Indeterminate-->
<Button
android:id="@+id/btnIndeterminate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Do some stuff" />
<ProgressBar
android:id="@+id/prgBarIndeterminate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:visibility="gone"/>
<!--ProgresBar Dinamico-->
<LinearLayout
android:id="@+id/linearDinamico"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
<Button
android:id="@+id/btnDinamico"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="HIDE PROGRESSBAR"/>
</LinearLayout>
Continuamos y nos dirigiremos a la clase.
Código MainActivity ProgressBar Kotlin Example
Abriremos nuestra clase para desarrollar el siguiente código de ProgressBar utilizando Kotlin.
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.LinearLayout
import android.widget.ProgressBar
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
private var progressBarStatus = 0
var dummy:Int = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// ProgressBar Determinate
// Obtener las referencias del los objetos
var btnDeterminate = this.btnDeterminate
var prgBarDeterminate = this.prgBarDeterminate
// Evento on click del Button
btnDeterminate.setOnClickListener { v ->
// Ejecuta el Thread
Thread(Runnable {
// hilo ficticio que imita alguna operación cuyo progreso se puede rastrear
while (progressBarStatus < 100) {
//realizando alguna operación falsa
try {
dummy = dummy+25
Thread.sleep(1000)
} catch (e: InterruptedException) {
e.printStackTrace()
}
// seguimiento del progreso
progressBarStatus = dummy
// Actualizando la barra de progreso
prgBarDeterminate.progress = progressBarStatus
}
}).start()
}
// ProgressBar Indeterminado
// obtener las referencias del archivo de diseño
val btnIndeterminate = this.btnIndeterminate
val prgBarIndeterminate: ProgressBar = this.prgBarIndeterminate
// cuando se hace clic en el botón, comienza la tarea
btnIndeterminate.setOnClickListener { v ->
// la tarea se ejecuta en un hilo
Thread(Runnable {
// hilo ficticio que imita alguna operación cuyo progreso no se puede rastrear
// mostrar la barra de progreso indefinida
this@MainActivity.runOnUiThread(java.lang.Runnable {
prgBarIndeterminate.visibility = View.VISIBLE
})
// realizando alguna operación ficticia de toma de tiempo
try {
var i=0;
while(i<Int.MAX_VALUE){
i++
}
} catch (e: InterruptedException) {
e.printStackTrace()
}
// cuando la tarea se completa, ha progresoBar terminado
this@MainActivity.runOnUiThread(java.lang.Runnable {
prgBarIndeterminate.visibility = View.GONE
})
}).start()
}
// ProgressBar Dinamico
// Crear ProgressBar dinamico.
val progressBar = ProgressBar(this)
progressBar.layoutParams = LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
val linearLayout = findViewById<LinearLayout>(R.id.linearDinamico)
// Agregar ProgressBar al LinearLayout
linearLayout?.addView(progressBar)
val btn = findViewById<Button>(R.id.btnDinamico)
btn?.setOnClickListener {
val visibility = if (progressBar.visibility == View.GONE) View.VISIBLE else View.GONE
progressBar.visibility = visibility
val btnText = if (progressBar.visibility == View.GONE) "Mostrar PROGRESSBAR" else "Ocultar PROGRESSBAR"
btn.text = btnText
}
}
}
Ahora para terminar.
Crear Emulador AVD (Aquí)
Crearemos el emulador para ejecutar nuestro proyecto y ver nuestro ProgressBar con Kotlin.
Listo y con esto terminamos. Si tienes alguna duda déjanos tu comentario.
No hay comentarios:
Publicar un comentario