MainActivity.kt
package com.cfsuman.kotlintutorials
import android.app.Activity
import android.content.res.ColorStateList
import android.graphics.BlendMode
import android.graphics.BlendModeColorFilter
import android.graphics.Color
import android.graphics.PorterDuff
import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.widget.Button
import android.widget.ProgressBar
import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintLayout
class MainActivity : Activity() {
var progressStatus = 0
var handler = Handler(Looper.getMainLooper())
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Get the widgets reference from XML layout
val button = findViewById<Button>(R.id.button)
val textView = findViewById<TextView>(R.id.textView)
val progressBar = findViewById<ProgressBar>(R.id.progressBar)
val progressBar2 = findViewById<ProgressBar>(R.id.progressBar2)
val progressBar3 = findViewById<ProgressBar>(R.id.progressBar3)
// set progressbar color (tint) programmatically
progressBar2.progressTintList = ColorStateList.valueOf(Color.BLUE)
progressBar2.progressBackgroundTintList = ColorStateList
.valueOf(Color.BLUE)
// another way to change progress bar color
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
progressBar3.progressDrawable.colorFilter =
BlendModeColorFilter(Color.RED, BlendMode.SRC_IN)
}else {
progressBar3.progressDrawable
.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN)
}
// set button click listener
button.setOnClickListener {
Thread {
while (progressStatus < 100) {
// update progress status
progressStatus += 1
// sleep the thread for 100 milliseconds
Thread.sleep(100)
// update the progress bar
handler.post {
progressBar.progress = progressStatus
progressBar2.progress = progressStatus
progressBar3.progress = progressStatus
textView.text = "$progressStatus"
}
}
}.start()
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rootLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="24dp"
android:background="#DCDCDC">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:padding="12dp"
android:fontFamily="sans-serif"
android:textSize="20sp"
android:textStyle="bold"
tools:text="TextView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<ProgressBar
android:id="@+id/progressBar2"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progressBar" />
<ProgressBar
android:id="@+id/progressBar3"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progressBar2" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Start Task"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progressBar3" />
</androidx.constraintlayout.widget.ConstraintLayout>


- android kotlin - Bitmap sepia effect
- android kotlin - ThumbnailUtils example
- android kotlin - Base64 string to bitmap
- android kotlin - ActionBar title text size
- android kotlin - ActionBar title color
- android kotlin - Menu item text color
- android kotlin - CalendarView set minDate maxdate
- android kotlin - Toolbar center align title
- android kotlin - Secondary progress bar example
- android kotlin - Circular progress bar example
- android kotlin - Custom horizontal progress bar
- android kotlin - Progressbar with percentage example
- android kotlin - Change horizontal ProgressBar color
- android kotlin - Horizontal ProgressBar example
- android kotlin - selectableItemBackground programmatically