ל-Jetpack פיתוח נייטיב יש גישה למשאבים שהוגדרו בפרויקט Android שלכם. הזה מסביר חלק מההצעות של APIs Compose כדי לעשות זאת.
משאבים הם הקבצים הנוספים והתוכן הסטטי שנעשה בהם שימוש בקוד שלכם, כמו כמו מפות סיביות, הגדרות פריסה, מחרוזות ממשק משתמש, הוראות אנימציה, ועוד. אם אתם לא יודעים מהם המשאבים ב-Android, אפשר לעיין באפליקציה מדריך סקירה כללית של משאבים.
מיתרים
סוג המשאב הנפוץ ביותר הוא String (מחרוזות). שימוש ב-API של stringResource
כדי לאחזר מחרוזת שמוגדרת באופן סטטי במשאבי ה-XML שלכם.
// In the res/values/strings.xml file // <string name="compose">Jetpack Compose</string> // In your Compose code Text( text = stringResource(R.string.compose) )
stringResource
פועל גם עם עיצוב תלוי מיקום.
// In the res/values/strings.xml file // <string name="congratulate">Happy %1$s %2$d</string> // In your Compose code Text( text = stringResource(R.string.congratulate, "New Year", 2021) )
צורת רבים של מחרוזות (ניסיוני)
צריך להשתמש ב-API pluralStringResource
כדי לטעון צורת רבים עם כמות מסוימת.
// In the res/strings.xml file // <plurals name="runtime_format"> // <item quantity="one">%1$d minute</item> // <item quantity="other">%1$d minutes</item> // </plurals> // In your Compose code Text( text = pluralStringResource( R.plurals.runtime_format, quantity, quantity ) )
כשמשתמשים בשיטה pluralStringResource
, צריך להעביר את הספירה פעמיים
אם המחרוזת כוללת פורמט מחרוזות עם מספר. לדוגמה, עבור
מחרוזת %1$d minutes
, פרמטר הספירה הראשון בוחר את צורת הרבים המתאימה
ופרמטר הספירה השני נוסף ל-placeholder של %1$d
.
אם מחרוזות הרבים לא כוללות את העיצוב שלהן, אין צורך להעביר
את הפרמטר השלישי ל-pluralStringResource
.
לקבלת מידע נוסף על צורת רבים, אפשר לעיין מסמכי תיעוד של מחרוזת quantity
מידות
באופן דומה, משתמשים ב-API dimensionResource
כדי לקבל מאפיינים מ-XML של משאב
חדש.
// In the res/values/dimens.xml file // <dimen name="padding_small">8dp</dimen> // In your Compose code val smallPadding = dimensionResource(R.dimen.padding_small) Text( text = "...", modifier = Modifier.padding(smallPadding) )
צבעים
אם התחלתם להשתמש בתכונה 'כתיבה' באפליקציה שלכם באופן מצטבר, כדאי להשתמש בcolorResource
API לקבלת צבעים מקובץ XML של משאב.
// In the res/colors.xml file // <color name="purple_200">#FFBB86FC</color> // In your Compose code Divider(color = colorResource(R.color.purple_200))
colorResource
פועל כצפוי עם צבעים סטטיים, אבל הוא משטח צבע
רשימת מקורות מידע.
נכסים וקטוריים ומשאבי תמונות
שימוש ב-API painterResource
כדי לטעון פריטים גרפיים וקטוריים או פריטים בפורמט רסטר
בפורמטים של נכסים כמו PNG. אין צורך לדעת מה סוג פריט הגרפיקה, פשוט
צריך להשתמש ב-painterResource
ב-Image
תכנים קומפוזביליים או בערכי paint
.
// Files in res/drawable folders. For example: // - res/drawable-nodpi/ic_logo.xml // - res/drawable-xxhdpi/ic_logo.png // In your Compose code Icon( painter = painterResource(id = R.drawable.ic_logo), contentDescription = null // decorative element )
painterResource
מפענח ומנתח את התוכן של המשאב בקובץ הראשי
של שרשור.
פריטי גרפיקה וקטוריים מונפשים
שימוש ב-API AnimatedImageVector.animatedVectorResource
כדי לטעון אנימציה
XML לשרטוט וקטורי. ה-method מחזירה מופע של AnimatedImageVector
. לחשבון
כדי להציג את התמונה המונפשת, צריך להשתמש בפונקציה rememberAnimatedVectorPainter
כדי ליצור Painter
שניתן להשתמש בו בתוכן קומפוזבילי Image
ו-Icon
.
הפרמטר atEnd
הבוליאני של ה-method rememberAnimatedVectorPainter
מציין אם צריך לצייר את התמונה בסוף כל האנימציות.
אם משתמשים בו במצב ניתן לשינוי, שינויים בערך יפעילו את הפונקציה
אנימציה.
// Files in res/drawable folders. For example: // - res/drawable/ic_hourglass_animated.xml // In your Compose code val image = AnimatedImageVector.animatedVectorResource(R.drawable.ic_hourglass_animated) val atEnd by remember { mutableStateOf(false) } Icon( painter = rememberAnimatedVectorPainter(image, atEnd), contentDescription = null // decorative element )
סמלים
'Jetpack פיתוח נייטיב' מגיע עם האובייקט Icons
שמשמש כנקודת הכניסה לשימוש
סמלי חומרים ב-
פיתוח נייטיב. יש חמישה עיצובי סמלים נפרדים:
Filled,
Outlined,
מעוגל,
TwoTone, וגם
חדות. כל אחד
מכיל את אותם סמלים, אבל בסגנון חזותי ייחודי. אתם צריכים
בדרך כלל בוחרים עיצוב אחד ומשתמשים בו בכל האפליקציה כדי לשמור על עקביות.
כדי לשרטט סמל, אפשר להשתמש
Icon
קומפוזבילי שמחיל גוון ומספק גודל פריסה שתואם לסמל.
Icon(Icons.Rounded.Menu, contentDescription = "Localized description")
כמה מהסמלים הנפוצים ביותר זמינים כחלק
תלות ב-androidx.compose.material
. כדי להשתמש בסמלים אחרים של Material:
מוסיפים את התלות material-icons-extended
לקובץ build.gradle
.
dependencies {
def composeBom = platform('androidx.compose:compose-bom:2024.06.00')
implementation composeBom
implementation 'androidx.compose.material:material-icons-extended'
}
גופנים
כדי להשתמש בגופנים במצב 'כתיבה', צריך להוריד ולקבץ את קובצי הגופנים ישירות
חבילות APK על ידי הצבתן בתיקייה res/font
.
טוענים כל גופן באמצעות
API של Font
ויוצרים
FontFamily
עם
שאפשר להשתמש בהן
TextStyle
מופעים עד
יצירה אישית
Typography
.
הוא קוד שנלקח
מנוף
כתיבת הדוגמה
Typography.kt
חדש.
// Define and load the fonts of the app private val light = Font(R.font.raleway_light, FontWeight.W300) private val regular = Font(R.font.raleway_regular, FontWeight.W400) private val medium = Font(R.font.raleway_medium, FontWeight.W500) private val semibold = Font(R.font.raleway_semibold, FontWeight.W600) // Create a font family to use in TextStyles private val craneFontFamily = FontFamily(light, regular, medium, semibold) // Use the font family to define a custom typography val craneTypography = Typography( titleLarge = TextStyle( fontFamily = craneFontFamily ) /* ... */ ) // Pass the typography to a MaterialTheme that will create a theme using // that typography in the part of the UI hierarchy where this theme is used @Composable fun CraneTheme(content: @Composable () -> Unit) { MaterialTheme(typography = craneTypography) { content() } }
כדי להשתמש בגופנים שניתן להוריד במצב 'כתיבה', אפשר לעיין הדף גופנים להורדה.
אפשר לקרוא מידע נוסף על טיפוגרפיה בקטע עיצובים בקטע 'כתיבה' תיעוד
מומלץ עבורך
- הערה: טקסט הקישור מוצג כאשר JavaScript מושבת
- הטעינה של תמונות {:#loading-images}
- עיצוב Material 2 ב-Compose
- מערכות עיצוב בהתאמה אישית בכתיבה