TextPoďme na to. Text si už použil v MainActivity.kt ako svoj prvý widget pre zobrazenie jednoduchého textu.
Text samotný má ale obrovské množstvo atribútov pre nastavenie jeho vzhľadu so zvláštnymi typmi parametrov.
Tu je nekompletný zoznam najčastejších:
text : String - text, ktorý sa má zobrazovaťcolor : Color - farba textufontSize : TextUnit - veľkosť textufontWeight : FontWeight - aký hrubý je textfontStyle : FontStyle - kurzíva textutextAlign : TextAlign - zarovnanie textulineHeight : TextUnit - výška riadkuletterSpacing : TextUnit - medzera medzi písmenamiAsi rovno ukážem príklad použitia Text funkcie:
// vynechany package + dalsie importy
import androidx.compose.material3.Text
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.sp
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Text(
text = "Hello World!",
color = Color(0xFF000000),
fontSize = 24.sp,
fontWeight = FontWeight.SemiBold,
textAlign = TextAlign.Center,
lineHeight = 32.sp,
letterSpacing = 1.sp,
)
}
}
}
Všimnime si zopár vecí:
String v prípade atribútu text), alebo typy z balíka androidx.composeText som všetky atribúty označil názvom (tzv. named parameters), pretože Text ich má asi 20 a nie je šanca zapamätať si ich poradie.Text-e sa označujú číslom s jednotkou sp (scale-independent pixels)Na PC sme zvyknutí, že veľkosť textu nastavujeme ako priamu hodnotu, napríklad 12. Táto veľkosť textu zaručuje jediné,
ak tento text vytlačíš na papier, bude mať rovnakú fyzickú veľkosť bez ohľadu na počítač, papier alebo tlačiareň, ktorú
použiješ.
Keďže nás ale nezaujímajú pixely na papiery, ale na reálnej obrazovke, stretávame sa s dvoma kritickými problémami:
Preto nám klasické pixely nestačia. Pre približnú predstavu o bode 1 prikladám nasledovný obrázok:

24.sp bude pre náš kód znamenať nasledovné:
24 číslom 1. Pri dvojnásobnom rozlíšení vynásob 24 číslom 2.1.5x v telefóni vynásob 24 číslom 1.5.Pre rýchlu predstavu o podporovaných rozlíšeniach. Základným rozlíšením je rozlíšenie mdpi. Relatívne rozlíšenia sú:
| Rozlíšenie | Násobiteľ oproti MDPI |
|---|---|
| mdpi | 1x |
| hdpi | 1.5x |
| xhdpi | 2x |
| xxhdpi | 3x |
| xxxhdpi | 4x |
V dizajnoch (napr. vo Figme) dizajnéri - často nevedomky - vždy používajú mdpi ako základný rozlíšenie. Preto môžeš s veľkou dávkou istoty kopírovať priamo hodnoty veľkostí z dizajnu.