Kotlin/ReadMe.md

2.3 KiB
Raw Blame History

Color Picker

Инструмент для работы с цветами.
Получение значений RGB/HEX.

package com.example.colorpicker

import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContent {
            ColorPickerApp()
        }
    }
}

@Composable
fun ColorPickerApp() {
    var r by remember { mutableStateOf(128f) }
    var g by remember { mutableStateOf(128f) }
    var b by remember { mutableStateOf(128f) }

    val context = LocalContext.current

    val color = Color(r / 255f, g / 255f, b / 255f)
    val hex = "#%02X%02X%02X".format(r.toInt(), g.toInt(), b.toInt())

    Column(modifier = Modifier.padding(16.dp)) {

        Text("R: ${r.toInt()}")
        Slider(value = r, onValueChange = { r = it }, valueRange = 0f..255f)

        Text("G: ${g.toInt()}")
        Slider(value = g, onValueChange = { g = it }, valueRange = 0f..255f)

        Text("B: ${b.toInt()}")
        Slider(value = b, onValueChange = { b = it }, valueRange = 0f..255f)

        Spacer(modifier = Modifier.height(16.dp))

        Box(
            modifier = Modifier
                .fillMaxWidth()
                .height(150.dp)
                .background(color)
        )

        Spacer(modifier = Modifier.height(16.dp))

        Text("HEX: $hex")

        Spacer(modifier = Modifier.height(8.dp))

        Button(onClick = {
            val clipboard = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
            val clip = ClipData.newPlainText("color", hex)
            clipboard.setPrimaryClip(clip)

            Toast.makeText(context, "Скопировано: $hex", Toast.LENGTH_SHORT).show()
        }) {
            Text("Copy HEX")
        }
    }
}