Палитра цветов в Android с использованием Jetpack Compose
Палитра цветов встречается во многих приложениях для рисования и используется для рисования некоторых компонентов и их окрашивания. В этих приложениях мы можем видеть различные средства выбора цвета, которые используются для выбора цвета и окрашивания этого конкретного компонента. В этой статье мы рассмотрим, как реализовать Color Picker в Android с помощью Jetpack Compose . Пример видео приведен ниже, чтобы получить представление о том, что мы собираемся делать в этой статье.
Пошаговая реализация
Шаг 1. Создайте новый проект в Android Studio.
Чтобы создать новый проект в Android Studio, обратитесь к разделу «Как создать/запустить новый проект в Android Studio». При выборе шаблона выберите «Пустая активность создания» . Если вы не найдете этот шаблон, попробуйте обновить Android Studio до последней версии. Мы продемонстрировали приложение на Kotlin, поэтому убедитесь, что вы выбрали Kotlin в качестве основного языка при создании нового проекта.
Шаг 2: Добавление зависимости в файл build.gradle
Перейдите к app> build.gradle и добавьте приведенную ниже зависимость в раздел зависимостей.
implementation "com.github.skydoves:colorpicker-compose:1.0.0"
Теперь синхронизируйте свой проект, чтобы установить зависимость в приложении для Android.
Шаг 3: Добавление нового цвета в файл Color.kt
Перейдите к приложению > java > имени пакета вашего приложения > ui.theme > файлу Color.kt и добавьте в него приведенный ниже код.
Kotlin
package com.example.newcanaryproject.ui.theme import androidx.compose.ui.graphics.Color val Purple200 = Color(0xFF0F9D58)val Purple500 = Color(0xFF0F9D58)val Purple700 = Color(0xFF3700B3)val Teal200 = Color(0xFF03DAC5) // on below line we are adding different colors.val greenColor = Color(0xFF0F9D58) |
Шаг 4: Работа с файлом MainActivity.kt
Перейдите к файлу MainActivity.kt и обратитесь к следующему коду. Ниже приведен код файла MainActivity.kt . Комментарии добавляются внутри кода, чтобы понять код более подробно.
Kotlin
package com.example.newcanaryproject import android.app.Activityimport android.content.Contextimport android.net.Uriimport android.os.Bundleimport android.util.DisplayMetricsimport android.util.Logimport android.view.WindowManagerimport android.widget.Chronometerimport android.widget.MediaControllerimport android.widget.Toastimport android.widget.VideoViewimport androidx.activity.ComponentActivityimport androidx.activity.compose.setContentimport androidx.compose.foundation.layout.*import androidx.compose.foundation.shape.RoundedCornerShapeimport androidx.compose.material.*import androidx.compose.material.icons.Iconsimport androidx.compose.material.icons.filled.Addimport androidx.compose.runtime.*import androidx.compose.ui.Alignmentimport androidx.compose.ui.Modifierimport androidx.compose.ui.draw.clipimport androidx.compose.ui.graphics.*import androidx.compose.ui.platform.LocalContextimport androidx.compose.ui.res.imageResourceimport androidx.compose.ui.text.TextStyleimport androidx.compose.ui.text.font.FontFamilyimport androidx.compose.ui.text.font.FontWeightimport androidx.compose.ui.text.input.TextFieldValueimport androidx.compose.ui.text.style.TextAlignimport androidx.compose.ui.unit.*import com.example.newcanaryproject.ui.theme.*import com.github.skydoves.colorpicker.compose.*import dev.shreyaspatil.easyupipayment.EasyUpiPaymentimport dev.shreyaspatil.easyupipayment.listener.PaymentStatusListenerimport dev.shreyaspatil.easyupipayment.model.PaymentAppimport dev.shreyaspatil.easyupipayment.model.TransactionDetailsimport java.text.SimpleDateFormatimport java.util.* class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { NewCanaryProjectTheme { // on below line we are specifying background color for our application Surface( // on below line we are specifying modifier and color for our app modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background ) { // on the below line we are specifying the theme as the scaffold. Scaffold( // in scaffold we are specifying the top bar. topBar = { // inside top bar we are specifying background color. TopAppBar(backgroundColor = greenColor, // along with that we are specifying title for our top bar. title = { // in the top bar we are specifying tile as a text Text( // on below line we are specifying // text to display in top app bar. text = "GFG", // on below line we are specifying // modifier to fill max width. modifier = Modifier.fillMaxWidth(), // on below line we are specifying // text alignment. textAlign = TextAlign.Center, // on below line we are specifying // color for our text. color = Color.White ) }) }) { // on below line we are // calling color picker method colorPicker() } } } } }} @Composablefun colorPicker() { // on below line we are creating a variable for controller val controller = rememberColorPickerController() // on below line we are creating a column, Column( // on below line we are adding a modifier to it, modifier = Modifier .fillMaxSize() // on below line we are adding a padding. .padding(all = 30.dp) ) { // on below line we are adding a row. Row( // on below line we are adding a modifier modifier = Modifier.fillMaxWidth(), // on below line we are adding horizontal // and vertical alignment. horizontalArrangement = Arrangement.Center, verticalAlignment = Alignment.CenterVertically ) { // on below line we are adding a alpha tile. AlphaTile( // on below line we are // adding modifier to it modifier = Modifier .fillMaxWidth() // on below line // we are adding a height. .height(60.dp) // on below line we are adding clip. .clip(RoundedCornerShape(6.dp)), // on below line we are adding controller. controller = controller ) } // on below line we are // adding horizontal color picker. HsvColorPicker( // on below line we are // adding a modifier to it modifier = Modifier .fillMaxWidth() .height(450.dp) .padding(10.dp), // on below line we are // adding a controller controller = controller, // on below line we are // adding on color changed. onColorChanged = {} ) // on below line we are adding a alpha slider. AlphaSlider( // on below line we // are adding a modifier to it. modifier = Modifier .fillMaxWidth() .padding(10.dp) .height(35.dp), // on below line we are // adding a controller. controller = controller, // on below line we are // adding odd and even color. tileOddColor = Color.White, tileEvenColor = Color.Black ) // on below line we are // adding a brightness slider. BrightnessSlider( // on below line we // are adding a modifier to it. modifier = Modifier .fillMaxWidth() .padding(10.dp) .height(35.dp), // on below line we are // adding a controller. controller = controller, ) }} |
Теперь запустите ваше приложение, чтобы увидеть результат.
Выход: