How to Create a Color Picker in Android Using Kotlin

22 Jul 2023 Balmiki Mandal 0 Kotlin

Creating a color picker in Android using Kotlin involves building a user interface with a color palette and allowing users to select colors interactively. Below is a step-by-step guide to creating a simple color picker in an Android app using Kotlin.

Step 1: Create a new Android Project Start by creating a new Android project in Android Studio. Choose an appropriate name, package, and other settings for your project.

Step 2: Design the User Interface (XML layout) In the XML layout file (e.g., activity_main.xml), design the user interface for the color picker. You can use a SeekBar or GridView to display a range of colors for selection. Here, we'll use a GridView with a set of predefined colors:

xml

<!-- activity_main.xml -->
<GridView
    android:id="@+id/colorGridView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:numColumns="4"
    android:verticalSpacing="8dp"
    android:horizontalSpacing="8dp"
    android:padding="8dp"
    android:gravity="center"
    android:stretchMode="columnWidth"
    android:background="@android:color/darker_gray"/>

Step 3: Create a ColorAdapter (Custom Adapter) Now, create a custom adapter (ColorAdapter) to handle the color items in the GridView. Each color item can be represented as a simple View (e.g., ImageView) with the background color set accordingly.

kotlin

// ColorAdapter.kt
import android.content.Context
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.ImageView

class ColorAdapter(private val context: Context, private val colors: List<Int>) : BaseAdapter() {

    override fun getCount(): Int {
        return colors.size
    }

    override fun getItem(position: Int): Any {
        return colors[position]
    }

    override fun getItemId(position: Int): Long {
        return position.toLong()
    }

    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
        val colorView = if (convertView == null) {
            ImageView(context)
        } else {
            convertView as ImageView
        }

        val color = colors[position]
        colorView.setBackgroundColor(color)

        return colorView
    }
}

Step 4: Implement the Color Picker in MainActivity In your MainActivity.kt, set the ColorAdapter to the GridView and handle color selection by setting a listener to the GridView items:

kotlin

// MainActivity.kt
import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.AdapterView
import android.widget.GridView

class MainActivity : AppCompatActivity() {

    private val colors = listOf(
        Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW,
        Color.MAGENTA, Color.CYAN, Color.BLACK, Color.WHITE,
        // Add more colors as needed
    )

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val colorGridView = findViewById<GridView>(R.id.colorGridView)
        val colorAdapter = ColorAdapter(this, colors)
        colorGridView.adapter = colorAdapter

        colorGridView.onItemClickListener = AdapterView.OnItemClickListener { _, _, position, _ ->
            val selectedColor = colors[position]
            // Handle the selected color (e.g., pass it to another activity, apply to a view, etc.)
        }
    }
}

That's it! You now have a simple color picker in your Android app using Kotlin. The color picker displays a set of predefined colors, and when the user selects a color, you can handle it in the onItemClickListener. You can further enhance the color picker by adding custom colors, using a different UI layout, or integrating it into a more comprehensive application.

BY: Balmiki Mandal

Related Blogs

Post Comments.

Login to Post a Comment

No comments yet, Be the first to comment.