๋ชฉ์ฐจ
Image composable ์ฌ์ฉํ์ฌ ์ฑ์ ์ด๋ฏธ์ง ์ถ๊ฐํ๊ธฐ
์ด ๋งํฌ์์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ๋๋ค.
C: hyeon ์ ์ ์ฅํ๊ธฐ
Resource Manager์์ + ํ ํ Import Drawables ํด๋ฆญ
Qualifier Type๋ชฉ๋ก์์ Density,
Value๋ชฉ๋ก์์ no density ํด๋ฆญ
Import ํด๋ฆญ
-> Android ์คํ๋์ค๋ drawable-noopi ํด๋๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ ์ด๋ฏธ์ง๋ฅผ ๋ฐฐ์นํ๋ค.
์ฑ๊ณต์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋ฉด ์๋๋ก์ด๋ ์คํ๋์ค๋ Drawable ํญ ์๋์ ๋ชฉ๋ก์ ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํ๋ค.
4. ์ด๋ฏธ์ง composable ์ถ๊ฐ
์ฑ์์ ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด ํ์ํ ์์น๊ฐ ํ์ํ๋ค.
Text composable์ ์ฌ์ฉํ์ฌ ํ ์คํธ๋ฅผ ํ์ํ๋ ๊ฒ์ฒ๋ผ Image composable์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ํ์ ๊ฐ๋ฅ
Jetpack Compose์ ๋ฆฌ์์ค
๋ฆฌ์์ค๋ ์ฝ๋์์ ์ฌ์ฉํ๋ ์ถ๊ฐ ํ์ผ๊ณผ ์ ์ ์ธ ์ฝํ ์ธ ์ด๋ค.
์๋ฅผ ๋ค์ด ๋นํธ๋งต, ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋ฌธ์์ด, ์ ๋๋ฉ์ด์ ์ง์นจ ๋ฑ์ด ์๋ค.
์ด๋ฏธ์ง์ ๋ฌธ์์ด ๋ฑ application resource๋ ๋ ๋ฆฝ์ ์ธ ์ ์ง๊ด๋ฆฌ๋ฅผ ์ํด ํญ์ ์ฝ๋๋ก๋ถํฐ ๋ถ๋ฆฌํด์ผํ๋ค.
Android๋ ๋ฐํ์์ ํ์ฌ ๊ตฌ์ฑ์ ๊ทผ๊ฑฐ๋ก ์ ์ ํ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ค.
ex) ํ๋ฉด ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ค๋ฅธ UI ๋ ์ด์์์ ์ ๊ณตํ๊ฑฐ๋ ์ธ์ด ์ค์ ์ ๋ฐ๋ผ ๋ฌธ์์ด์ ์ ๊ณตํ๋ค.
๋ฆฌ์์ค ๊ทธ๋ฃนํ
ํญ์ ํ๋ก์ ํธ์ res/ ๋๋ ํฐ๋ฆฌ์ ์๋ ํน์ ํ์ ๋๋ ํฐ๋ฆฌ์ ๊ฐ ์ ํ์ ๋ฆฌ์์ค๋ฅผ ๋ฐฐ์นํด์ผ ํ๋ค.
๊ฐ๋จํ ํ๋ก์ ํธ์์ ๋ณผ ์ ์๋ ํ์ผ ๊ณ์ธต ๊ตฌ์กฐ์ ์
MyProject/
src/
MyActivity.kt
res/
drawable/
graphic.png
mipmap/
icon.png
values/
strings.xml
res/ directory์๋ ์ด๋ฏธ์ง ๋ฆฌ์์ค์ฉ drawable ๋๋ ํฐ๋ฆฌ,
๋ฐ์ฒ ์์ด์ฝ์ฉ mipmap/ ๋๋ ํฐ๋ฆฌ,
๋ฌธ์์ด ๋ฆฌ์์ค์ฉ values/ ๋๋ ํฐ๋ฆฌ๊ฐ ํฌํจ๋ ํ์ ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ ๋ฆฌ์์ค๊ฐ ํฌํจ๋์ด ์๋ค.
๋ฆฌ์์ค ์์ธ์ค
Jetpack Compose๋ Android ํ๋ก์ ํธ์ ์ ์๋ ๋ฆฌ์์ค์ ์์ธ์คํ ์ ์๋ค.
ํ๋ก์ ํธ์ R ํด๋์ค์์ ์์ฑ๋ ๋ฆฌ์์ค ID๋ก ๋ฆฌ์์ค์ access ํ ์ ์๋ค.
R ํด๋์ค๋ Android์์ ์๋์ผ๋ก ์์ฑ๋๋ ํด๋์ค๋ก, ํ๋ก์ ํธ์ ์๋ ๋ชจ๋ ๋ฆฌ์์ค์ ID๋ฅผ ํฌํจํ๋ค.
๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ฆฌ์์ค ID๋ ํ์ผ ์ด๋ฆ๊ณผ ๋์ผํ๋ค.
์๋ฅผ ๋ค์ด ์ด์ ํ์ผ ๊ณ์ธต ๊ตฌ์กฐ์ ์ด๋ฏธ์ง๋
R.drawable.graphic
๋ก ์์ธ์ค ๊ฐ๋ฅ
๋ค์ ์์ ์ ์ํํด๋ณด์
- BirthdayGreetingWithImage() ํจ์์์ val ์์ฑ์ ์ ์ธํ๊ณ ์ด๋ฆ์ image๋ก ์ง์
- androidparty ๋ฆฌ์์ค๋ฅผ ์ ๋ฌํ์ฌ painterResource() ํจ์๋ฅผ ํธ์ถํฉ๋๋ค. ๋ฐํ๋ ๊ฐ์ image์ ํ ๋น
//Image composable
@Composable
fun BirthdayGreetingWithImage(message: String,from: String) {
val image = painterResource(R.drawable.androidparty)
}
painterResource() ํจ์๋
drawable ์ด๋ฏธ์ง ๋ฆฌ์์ค๋ฅผ ๋ก๋ํ๊ณ ๋ฆฌ์์ค ID(์ฌ๊ธฐ์๋ R.drawable.androidparty) ๋ฅผ ์ธ์๋ก ์ฌ์ฉํ๋ค.
3. painterResource() ํจ์๋ฅผ ํธ์ถํ ํ Image ์ปดํฌ์ ๋ธ์ ์ถ๊ฐํ๊ณ image๋ฅผ ์ด๋ฆ์ด ์ง์ ๋ painter ์ธ์๋ก ์ ๋ฌ
Image(
painter = image
)
์ฑ ์ ๊ทผ์ฑ ํ์ธ
์ฌ์ฉ์์๊ฒ ํ์๋๋ ์ฝํ ์ธ ์ค๋ช ์ ์ค์ ํ๋ ๋์ ์ด๋ฏธ์ง์ contentDescription ์ธ์๋ฅผ null๋ก ์ค์ ํ์ฌ
TalkBack์ด Image ์ปดํฌ์ ๋ธ์ ๊ฑด๋๋ฐ๋๋ก ํ ์ ์๋ค.
cf) Talkback: ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ ์์ฑํผ๋๋ฐฑ, ์ฌ์ฉ์๋ ํ๋ฉด์ ๋ณด์ง ์๊ณ ๋ ๊ธฐ๊ธฐ ์ฌ์ฉ ๊ฐ๋ฅ
Image(
painter = image,
contentDescription = null
)
Image ์ปดํฌ์ ๋ธ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
๋ ์ ์ด๋ ๊ฒ ๋ฐ๊น
5. Box ๋ ์ด์์ ์ถ๊ฐ
Compose์ ์ธ ๊ฐ์ง ๊ธฐ๋ณธ ํ์ค ๋ ์ด์์ ์์๋ Column, Row, Box ์ปดํฌ์ ๋ธ์ด๋ค.
์ด์ Box ์ปดํฌ์ ๋ธ์ ๊ดํด ์์๋ด ์๋ค~
Box ๋ ์ด์์์ Compose์ ํ์ค ๋ ์ด์์ ์์ ์ค ํ๋์ ๋๋ค.
Box ๋ ์ด์์์ ์ฌ์ฉํ์ฌ ์์๋ฅผ ์๋ก ์์ ์๋๋ค. Box๋ ์ด์์์ ์ฌ์ฉํ๋ฉด ํฌํจ๋ ์์์ ํน์ ์ ๋ ฌ๋ ๊ตฌ์ฑํ ์ ์๋ค.
1. Image ์ปดํฌ์ ๋ธ ์ฃผ์์ Box ์ปดํฌ์ ๋ธ ์ถ๊ฐ
@Composable
fun BirthdayGreetingWithImage(message: String,from: String) {
val image = painterResource(R.drawable.androidparty)
//Box ๋ ์ด์์ ์ถ๊ฐ
Box {
Image(painter = image, contentDescription = null)
}
}
2. Box ์ปดํฌ์ ๋ธ์ ๋์์ BirthdayGreetingWithText() ํจ์๋ฅผ ํธ์ถ ํ ์๋์ ๊ฐ์ด ์์ผ ๋ฉ์์ง์ ์๋ช ์ ์ ๋ฌ
3. ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ์ธ
4. ์๋ฎฌ๋ ์ดํฐ๋ ๊ธฐ๊ธฐ์ ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์๋๋๋ก ํ๋ ค๋ฉด onCreate() ํจ์์์ BirthdayGreetingWithText()ํจ์ ํธ์ถ์ BirthdayGreetingWithImage() ํจ์๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
HappyBirthdayTheme {
// A surface container using the 'background' color from the theme
Surface(color = MaterialTheme.colors.background){
BirthdayGreetingWithImage(message = "Happy Birthday Sam!", from = "-from Emma")
}
}
}
}
}
'2023 ์๋๋ก์ด๋ > ์๋๋ก์ด๋ ์คํฐ๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Android ์ฑ์ ์ด๋ฏธ์ง ์ถ๊ฐ [ ๋์ ๊ณผ์ ] (0) | 2022.11.16 |
---|---|
Android ์ฑ์ ์ด๋ฏธ์ง ์ถ๊ฐ 6~ (0) | 2022.11.16 |
๊ธฐ๋ณธ ๋ ์ด์์ ๋ง๋ค๊ธฐ (0) | 2022.11.16 |
์ฒซ Android ์ฑ ๋ง๋ค๊ธฐ (0) | 2022.11.15 |
์ฒซ ๋ฒ์งธ Android ์ฑ ๋ง๋ค๊ธฐ 5 (0) | 2022.11.15 |