Kotlin/ReadMe.md

83 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### **Color Picker**
Инструмент для работы с цветами.
Получение значений RGB/HEX.
```kt
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")
}
}
}
```