์ฐ์ ๊ธฐ๋ก ๐ช
[์ํ ๋๋ก์ด๋ธ(StateListDrawable)] ์ด๋ฏธ์ง ๋ฒํผ ๋ง๋ค๊ธฐ ๋ฐ ์ด๋ฏธ์ง ๋ฐ๊พธ๊ธฐ ๋ณธ๋ฌธ
[์ํ ๋๋ก์ด๋ธ(StateListDrawable)] ์ด๋ฏธ์ง ๋ฒํผ ๋ง๋ค๊ธฐ ๋ฐ ์ด๋ฏธ์ง ๋ฐ๊พธ๊ธฐ
kite707 2021. 7. 12. 01:34๋ฒํผ์ background ์์ฑ์ ์ด๋ฏธ์ง๋ก ์ค์ ํ๋ฉด ์ด๋ฏธ์ง๋ ๋ณํ๊ฐ ์๋ค. ์ด๋ฒ์๋ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ด๋ฏธ์ง๊ฐ ๋ฐ๋๋ ๋ฒํผ์ ๋ง๋ค ๊ฒ์ด๋ค. ๊ทธ๋ฌ๊ธฐ ์ํด์๋ ๋๋ก์ด๋ธ(Drawable)์ ์ฌ์ฉํ๋ฉด ๋๋ค.
Drawable์ด๋?
์ํ์ ๋ฐ๋ผ ๊ทธ๋ํฝ์ด๋ ์ด๋ฏธ์ง๊ฐ ์ ํ์ ์ผ๋ก ๋ณด์ด๊ฒ ํด์ค๋ค. ๋๋ก์ด๋ธ์ ์ข ๋ฅ๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค. ๊ฐ๋จํ ์์๋ ์๋์ ๊ฐ๋ค.
๋๋ก์ด๋ธ | ์ค๋ช |
๋นํธ๋งต ๋๋ก์ด๋ธ(BitmapDrawable) | ์ด๋ฏธ์ง ํ์ผ์ ๋ณด์ฌ์ค ๋ ์ฌ์ฉ ๋นํธ๋งต ๊ทธ๋ํฝ ํ์ผ(png, jpg, gif ๋ฑ)์ ์ฌ์ฉํด์ ์์ฑ |
์ํ ๋๋ก์ด๋ธ(StateListDrawable) | ์ํ๋ณ๋ก ๋ค๋ฅธ ๋นํธ๋งต ๊ทธ๋ํฝ์ ์ฐธ์กฐ |
์ ํ ๋๋ก์ด๋ธ(TransitionDrawable) | ๋ ๊ฐ์ ๋๋ก์ด๋ธ์ ์๋ก ์ ํ |
์ ฐ์ดํ ๋๋ก์ด๋ธ(ShapeDrawable) | ์์๊ณผ ๊ทธ๋ผ๋ฐ์ด์ ์ ํฌํจํ์ฌ ๋ํ ๋ชจ์์ ์ ์ |
์ธ์ ๋๋ก์ด๋ธ(InsetDrawable) | ์ง์ ๋ ๊ฑฐ๋ฆฌ๋งํผ ๋ค๋ฅธ ๋๋ก์ด๋ธ์ ๋ค์ด์ ๋ณด์ฌ์ค |
ํด๋ฆฝ ๋๋ก์ด๋ธ(ClipDrawable) | ๋ ๋ฒจ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ค๋ฅธ ๋๋ก์ด๋ธ์ ํด๋ฆฌํ |
์ค์ผ์ผ ๋๋ก์ด๋ธ(ScaleDrawable) | ๋ ๋ฒจ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ค๋ฅธ ๋๋ก์ด๋ธ์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝ |
์ฌ๊ธฐ์ ํด๋ฆฝ ๋๋ก์ด๋ธ์ ์๋ฅผ ๋๊ณ ์๋ฅธ๋ค๊ณ ์ดํดํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค. ์์ธํ ์๊ณ ์ถ์ผ๋ฉด ์๋ ๊ณต์ ๋ฌธ์๊ฐ ์๋ค.
https://developer.android.com/guide/topics/graphics/drawables?hl=ko
๋๋ก์ด๋ธ ๊ฐ์ | Android ๊ฐ๋ฐ์ | Android Developers
์ ์ ์ด๋ฏธ์ง๋ฅผ ์ฑ์ ํ์ํด์ผ ํ ๋ Drawable ํด๋์ค์ ํ์ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ํ๊ณผ ์ด๋ฏธ์ง๋ฅผ ๊ทธ๋ฆด ์ ์์ต๋๋ค. Drawable์ ๊ทธ๋ฆด ์ ์๋ ํญ๋ชฉ์ ์ผ๋ฐ ์ถ์ํ์ ๋๋ค. ๋ค์ํ ์๋ธํด๋์ค๋ ํน์
developer.android.com
์ด๋ค ์ค ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋๋ก์ด๋ธ์ ์ํ ๋๋ก์ด๋ธ, ์ ฐ์ดํ ๋๋ก์ด๋ธ์ด๋ผ๊ณ ํ๋ค.
์ํ ๋๋ก์ด๋ธ
์ํ ๋๋ก์ด๋ธ์ ๋ทฐ์ ์ํ์ ๋ฐ๋ผ ๋ณด์ฌ์ค ๊ทธ๋ํฝ์ ๋ค๋ฅด๊ฒ ์ง์ ํ ์ ์๋ค. ๋ฒํผ์ ์์๋ก ๋ค๋ฉด ๋ฒํผ์ด ๋๋ ธ์ ๋์ ๋๋ฆฌ์ง ์์์ ๋์ ๋ฒํผ์ด ๋ค๋ฅด๊ฒ ๋ณด์ด๋๋ก ํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
์ฐ์ ์๋์ ๊ฐ์ด app/src/main/res/drawableํด๋์ ์ด๋ฏธ์ง๋ฅผ 2๊ฐ ๋ฃ์ด๋์.
๊ทธ๋ฐ ๋ค drawableํด๋์ xmlํ์ผ์ ํ๋ ๋ง๋ค๋๋ก ํ์. ๋๋ drawable2๋ผ๋ ์ด๋ฆ์ผ๋ก ํ์ผ์ ํ๋ ๋ง๋ค์๋ค.
์ด๋ ๊ฒ ํด์ ๋ง๋ค์ด์ง drawable2.xmlํ์ผ์ ์๋์ ๊ฐ์ด ์์ ํ๋ค.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
//๋ฒํผ์ด ๋๋ ธ์ ๋ background๊ฐ b๊ฐ ๋๋๋ก ํ๋ค
<item android:state_pressed="true"
android:drawable="@drawable/b"/>
//ํ์์๋ background๊ฐ a๊ฐ ๋๋๋ก ํ๋ค.
<item
android:drawable="@drawable/a"/>
</selector>
์ด์ ๋ฒํผ์ ๋ง๋ค๋๋ก ํ์. ์๋์ ๊ฐ์ด activity_mai.xml๋ก ์ด๋ํ์ฌ ๊ฐ์ด๋ฐ์ ๋ฒํผ์ ํ๋ ์ถ๊ฐํ๋๋ก ํ์.
๊ทธ๋ฆฌ๊ณ ์ข์ธก์์ ๋ฒํผ์ background ์์ฑ์ ์๊น ๋ง๋ drawable2.xml๋ก ์ง์ ํ๋ค. ์๋์ ๊ฐ์ด ์ ๋ ฅํ๋ฉด ๋๋ค.
//@drawable/์๊น ๋ง๋ ํ์ผ๋ช
@drawable/drawable2
์์ ๊ฐ์ด ๋ณด๋ผ์์ผ๋ก ํ๋ฉด์ด ๊ฐ๋ ์ฐฌ๋ค๋ฉด backgroundTint ์์ฑ๊ณผ backgroundTintMode๋ฅผ ์๋์ ๊ฐ์ด ๋ฐ๊ฟ์ค๋ค.
//backgroundTint
@android:color/transparent
//backgroundTintMode
add
๊ทธ๋ฆฌ๊ณ ๋๋ text๋ถ๋ถ์ ์ง์ button๊ธ์จ๋ฅผ ์์ด๋ค. ์ค์ ์ ์๋ฃํ ๋ชจ์ต์ ์๋์ ๊ฐ๋ค.
์ฆ activity_main.xmlํ์ผ์ ์ ์ฒด ์ฝ๋๋ ์๋์ ๊ฐ๋ค.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/button2"
//์ด ๋ถ๋ถ์ ๋ฐ๊ฟ ๋ฒํผ ํฌ๊ธฐ ์กฐ์ ๊ฐ๋ฅ. ๋จ์๋ dp๊ถ์ฅ
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/drawable2"
app:backgroundTint="@android:color/transparent"
app:backgroundTintMode="add"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
๊ทธ๋ผ ์๋์ ๊ฐ์ด ํด๋ฆญํ ๋๋ง๋ค ์ด๋ฏธ์ง๊ฐ ๋ฐ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
'etc' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Solidity+hardhat+JavaScript] ์ค๋งํธ์ปจํธ๋ ๋ฐฐํฌ ์ค์ต (0) | 2023.04.07 |
---|---|
[Firebase+Android Studio] ์ฑ์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ์ถ๊ฐํ๊ธฐ 1 (0) | 2021.07.26 |
[์ ฐ์ดํ ๋๋ก์ด๋ธ(ShapeDrawable)] ๋ฐฐ๊ฒฝ๋ณ๊ฒฝ/ํ ๋๋ฆฌ๋ง ์๋ ๋ฒํผ ๋ง๋ค๊ธฐ (0) | 2021.07.12 |
JAVA 2 - ์ดํด๋ฆฝ์ค ์ค์นํ๊ธฐ (0) | 2021.02.07 |
JAVA 1-JDK ์ค์นํ๊ธฐ (0) | 2021.02.06 |