[ํฐ๋] ํฐ๋ Android Studio๋ก ๋ค์ํ ๊ธฐ๊ธฐ ํ๋ฉด์ ๋์ํ๊ธฐ
์๋
ํ์ธ์ ํฐํ์ ์๋๋ก์ด๋ ๊ฐ๋ฐ์ ์ ์ฑํ์
๋๋ค๐๐
์ ๋ ํฐ๋์์ ๊ฐ์ฅ ์ด์๋๊ณ ์๋ ์ฌ๋ฌ๊ฐ์ง ํด์๋๋ฅผ ๊ฐ์ง ๊ธฐ๊ธฐ์ ๋์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด
Android์ ์ค์ ๋ก ๋ง์ด ์ฌ์ฉ๋๋ ์๋๋ก์ด๋ ํธ๋ํฐ์ ๊ธฐ์ข ์ ์๊ฐํ๋ฉฐ ๊ณ ๋ฏผํด๋ณผ ์ ์๋ ์๊ฐ์ ๊ฐ์ ธ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค๐ค
๐ฉ๐ป ํด์๋๋?
ํด์๋๋ ๊ฐ๋จํ ๋งํ์๋ฉด ํ๋ฉด์ ํฝ์ (pixel)์๋ฅผ ์๋ฏธํฉ๋๋ค.
์๋ฅผ ๋ค์ด, 1024*768์ธ ๊ฒฝ์ฐ ํ ํ๋ฉด์ ๊ฐ๋ก1024๊ฐ์ ์ ๊ณผ ์ธ๋ก768๊ฐ์ ์ ์ด ๋ชจ์ฌ์ ํ๋ฉด์ ๊ตฌ์ฑํด์ฃผ๊ณ ์๋ ๊ฒ์ ๋๋ค.
ํด์๋๊ฐ ๋์ ์๋ก ๋ง์ ์ ๋ค์ด ๋ชจ์ฌ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํ๋ฉด ๋น์จ๊ณผ ์ฐ๊ด์ด ์๊ฒ ์ฃ ?
์๋๋ก์ด๋ ๊ธฐ๊ธฐ๋ค์ ์ ๋ง ๋ค์ํ ํ๋ฉด ์ฌ์ด์ฆ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ฐ์ ์ด๋ฏธ์ง๋ ํ ์คํธ๋ฅผ ํ์ฉํด ๊ฐ๋ฐ์ ํ๋๋ผ๋ ์ฌ์ฉ์์ ํด์๋๊ฐ ๋ค์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง๊ฐ ํฌ๊ฒ ๋ณด์ผ ์ ๋ ์๊ณ ์๊ฒ ๋ณด์ผ ์๋ ์์ผ๋ฉฐ ์ผ๊ด์ฑ์ ์๊ฒ ๋๋ ํฐ ๋ฌธ์ ์ ์ด ์๊ธฐ๊ฒ ๋ฉ๋๋ค.
๊ฐ๋ฐ์ ํ์๋ฉด์ ๊ฐ์ฅ ์ด๋ ต๊ณ ๊ณ ๋ คํ์๋ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ฐ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๊ธฐ๋ค์ ๋ํด ์ด๋ป๊ฒ ์ ์ฉํ์ฌ ๊ฐ๋ฐํ์ฌ์ผ ํ ๊น์?
์ค๋์ ์ด๋ค ๋ถ๋ถ์ ๊ณ ๋ คํด์ ๊ฐ๋ฐํด์ผ ์ฌ๋ฌ ๊ธฐ์ข ์ ์๋ง๊ฒ ๊ด๋ฆฌ๋ฅผ ํ ์ ์์๊น?์ ๋ํ ๊ณ ๋ฏผ์ ๊ฐ์ด ํด๋ณด๊ฒ ์ต๋๋ค!
๐ฉ๐ป ์ด๋ป๊ฒ ํด๊ฒฐํ ๊น?
์์ํ์ จ๊ฒ ์ง๋ง ๋ฑ ์ ํด์ง ์ ๋ต์ ์์ต๋๋ค..!
ํ์ง๋ง ๋ค์ํ ๋ฐฉ๋ฒ์ ์๊ฐํด๋๋ฆฌ๊ฒ ์ต๋๋ค. ๊ฐ์ ์ํฉ์ ๋ง์ถฐ์ ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค๐ซก
- ๊ฐ์ฅ ๋จผ์ ํด๋ณผ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ฐ๋ก ํฝ์ (px)๋์ dp๋ฅผ ํ์ฉํ์ฌ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋๋ค.
dp๋ dip๋ผ๊ณ ๋ ํ๋ฉฐ, Density Independent Pixel('๋ฐ๋ ๋ ๋ฆฝ ํฝ์ ')์ ์ฝ์์ ๋๋ค. ํฝ์ ์ ๊ฒฝ์ฐ ์ด์ดํ ๊ฒฝ์ฐ์ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ(๋ฐ๋๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ) ๋ค๋ฅด๊ฒ ํ์๋๊ธฐ ๋๋ฌธ์ ๋ฐ๋์ ๋ ๋ฆฝ์ ์ธ dp๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
dp๋ฅผ ํ์ฉํ๋ฉด ํด์๋์ ๊ด๊ณ์์ด ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ๋น์จ๋ก ํ์ํ ์ ์์ต๋๋ค.
dp๊ฐ ํด์๋์ ๊ด๊ณ ์์ด ๋์ผํ ๋น์จ๋ก ํ์๋ ์ ์๋ ๋ฐฉ๋ฒ์ dp๋ 160dpi๋ฅผ ๊ฐ๋ ํ๋ฉด์์ ํ๋์ ํฝ์ ๊ณผ ๋์ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ฆ 160dpi ํด์๋์์ 1dp๋ 1pixel ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ 160dpi ํด์๋๋ฅผ ๊ธฐ์ค์ผ๋ก, ํ๋ฉด์ ํด์๋์ ๋ฐ๋ผ 1dp์ด ๋ํ๋ด๋ ํฝ์ ์ ์๋ ๋ฌ๋ผ์ง๋๋ค.
ํด์๋์ ๋ฐ๋ฅธ dp์ pixel ๊ด๊ณ๋ฅผ ๊ตฌํ๋ ๊ณต์๋ ์กด์ฌํฉ๋๋ค.
dp = px * (160dpi / ๋จ๋งdpi)
px = dp * (๋จ๋งdpi / 160dpi)
*160 dpi๋ 3.6์ธ์น ์คํฌ๋ฆฐ(๋ณดํต 320x480)์ ํด์๋๋ฅผ ๊ฐ์ง ์คํฌ๋ฆฐ์ ๋งํ๋ฉฐ 1์ธ์น๋น 160๊ฐ์ ํฝ์ ์ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
*dpi๋ 1์ธ์น์ ๋ค์ด๊ฐ๋ ํฝ์ ์ ๋ํ๋ด๋ ๋จ์ (dp,dip๊ณผ ๋ค๋ฅธ ๊ฐ๋ ์ ๋๋ค!)
- ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ dpi๋ณ๋ก ๋ ์ด์์์ ๋๋๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ธฐ๊ธฐ๋ง๋ค ํด์๋๋ณ ๋ฐ๋๋ฅผ ๊ตฌํด ๋์ํ๋ xmlํ์ผ์ ๋ง๋ค์ด ๋์ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
ldpi | ์ ๋ฐ๋(120dpi) ํ๋ฉด์ ํด๋น |
mdpi | ์ค๋ฐ๋(160dpi) ํ๋ฉด์ ํด๋น |
hdpi | ๊ณ ๋ฐ๋(240dpi) ํ๋ฉด์ ํด๋น |
xhdpi | ์ด๊ณ ๋ฐ๋(320dpi) ํ๋ฉด์ ํด๋น |
xxhdpi | ์ด์ด๊ณ ๋ฐ๋(480dpi) ํ๋ฉด์ ํด๋น |
xxxhdpi | ์ด์ด์ด๊ณ ๋ฐ๋(640dpi) ํ๋ฉด์ ํด๋น |
1๋ฒ dp์ ๊ฐ๋ ์ ๋ณด๊ณ ๋ ์ด์ง์ด์ง ํ๋๋ฐ 6๊ฐ์ xmlํ์ผ์ ๋ง๋ค๋ค๋... ์ด๊ฑด ์ ๋ง ์ค๋ ธ๋์ด์ง ์์๊น๐ต๐ซ์ถ์์ต๋๋ค.
- ์ธ๋ฒ์งธ ๋ฐฉ๋ฒ์ dpi๋ณ๋ก value(dimens)๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์ด๊ฒ๋ ๋๋ฒ์งธ ๋ฐฉ๋ฒ๊ณผ ๋์ผํ์ง๋ง dimens๋ฅผ ํ์ฉํด ๊ฐ ์์์ ํฌ๊ธฐ๋ง ์กฐ์ ํ๋ฉด ๋๊ฒ ์ฃ ?
์๋๋ dimen ์ฌ์ฉ ์์์ ๋๋ค.
<TextView
android:id="@+id/my_filter1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/size_30"
android:layout_marginStart="@dimen/size_30"
android:text="@string/restaurant_recommendation_tv_mood1"
android:textSize="20sp"
android:textColor="@color/purple_main"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
์ด ๋ฐ์ ๋ค์ํ GuildLine์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ๋ฑ์ด ์์ผ๋, ํฐ๋์ ํ์ฌ dp์ constraintLayout๋ง์ ํ์ฉํด์ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค.
์ถํ์ ์ฌ๋ ฅ์ด ๋๋ค๋ฉด dimen์ ํ์ฉํด layout margin๋ฑ์ ์กฐ์ ํ ์์ ์ ์์ต๋๋ค!
๐ฉ๐ป ๋ง์น๋ฉฐ
์ฌ์ค ์ด๋ค์๋ ์ค์ ์ผ์ฑ ํธ๋ํฐ์ ์ ๋ฎฌ๋ ์ดํฐ๋ก ์ํ๋ ๋งํผ ๊ฐ์ง๊ณ ์์ ํ์ฉํ๊ณ ์ฒดํฌํ๋ ๋ฐฉ๋ฒ์ ์ ์ผ๋ คํ์ผ๋
๋ถ๋๊ด๊ณ์๐ค ๋ค์ํธ์ ์ค์ ์ผ์ฑ ํธ๋ํฐ์ ์ ๋ฎฌ๋ ์ดํฐ๋ฅผ ํ์ฉํด์ ํ์ธํ๊ณ ์ ์ฉํ๋ ๋ฒ์ ๋ํด ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค:)
๋ค์ ๊ธ ๊ธฐ๋ ๋ถํ๋๋ฆฌ๊ฒ ์ต๋๋ค:)๐ค
๊ฐ์ฌํฉ๋๋ค!!
๐ฉ Contact : wjdcogus6@gmail.com
๐ฒ SNS : https://www.instagram.com/chaeehyuny/
'๐ฉโ๐ป TECH' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TECH] Retrofit2 Multipart์ฌ์ฉํ๊ธฐ (0) | 2023.08.23 |
---|---|
[TECH] GitHub Actions๋ก CI/CD ๊ตฌ์ถํ๊ธฐ(1) (0) | 2023.08.15 |
[TECH] RecyclerView ViewModel ์ ์๊ธฐ (0) | 2023.08.02 |
[TECH] Cloudwatch Logs๋ก ๋ก๊ทธ ํ์ผ ์์งํ๊ธฐ (1) | 2023.07.26 |
[TECH] Android Kotlin์ผ๋ก ๊ฐ๋จํ ๋ฐ์ดํฐ ์ ์ฅํ๊ธฐ (4) | 2023.07.20 |