안드로이드 스튜디오에서 버튼 색상을 변경하려고 해도 변경이 되지 않고 색상이 보라색으로 고정되어있으실 겁니다.
그래서 버튼 색상을 바꿀 수 있는 두가지 방법을 설명드리려고 합니다.
그 이전에 버튼 색상이 변경이 되지 않는 이유까지 살펴보고 알려드리겠습니다.
버튼 색상이 변경 되지 않는 이유
안드로이드 스튜디오는 기본설정으로 Material3 디자인을 상속받고 있습니다.
( 기본 설정값은 안드로이드 스튜디오 버전에 따라 다를 수 있습니다. )
이 기본 설정을 확인 하려면 res / values / themes / themes.xml 에 있는 코드를 보면 알 수 있습니다.
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.Jucoding" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your light theme here. -->
<!-- <item name="colorPrimary">@color/my_light_primary</item> -->
</style>
<style name="Theme.MyFamily" parent="Base.Theme.MyFamily" />
</resources>
위 코드 블럭에서 3번째 줄을 확인해 보면 Material3 디자인을 상속받는 것을 확인할 수 있습니다.
버튼 색상 변경 첫번째 방법 - 디자인 변경
res / values / themes / themes.xml로 들어가서
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.Jucoding" parent="Theme.Material3.DayNight.NoActionBar">
<!-- Customize your light theme here. -->
<!-- <item name="colorPrimary">@color/my_light_primary</item> -->
</style>
<style name="Theme.MyFamily" parent="Base.Theme.MyFamily" />
</resources>
3번째 줄에 "Theme.Material3.DayNight.NoActionBar" 라고 되어 있는 부분을
"Theme.AppCompat.Light"로 변경해주면 버튼색상을 변경할 수 있습니다.
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Base.Theme.Jucoding" parent="Theme.AppCompat.Light">
<!-- Customize your light theme here. -->
<!-- <item name="colorPrimary">@color/my_light_primary</item> -->
</style>
<style name="Theme.MyFamily" parent="Base.Theme.MyFamily" />
</resources>
위는 변경한 코드 모습입니다.
이제 버튼 색상이 변경 가능 해집니다!
버튼 색상 변경 두번째 방법 - Button 형식 변경
xml에서 기존 button을 추가하면 아래와 같습니다.
<Button
android:id="@+id/btn_register"
android:text="Jucoding"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"/>
하지만 Button 이 아니라 androidx.appcompat.widget.AppCompatButton을 쓰면 디자인 형식을 바꾸지 않아도 바로 버튼
색상을 변경 할 수 있습니다.
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btn_register"
android:text="Jucoding"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#999999"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView"/>
위는 Button에서 androidx.appcompat.widget.AppCompatButton로 변경한 예시 코드입니다.
이제 버튼 색상을 변경 할 수 있습니다!
'Android Studio > - Programming' 카테고리의 다른 글
[코틀린/OOP] OOP (객체지향 프로그래밍) 란 무엇인가? (0) | 2024.03.25 |
---|---|
[코틀린] Abstract class와 Interface 차이점 (0) | 2024.03.19 |
[안드로이드/Radius] 레이아웃 둥글게 만들기 (2) | 2024.03.06 |
[안드로이드/StatusBar] 앱 상태바 색상 변경하는 방법 (0) | 2024.03.04 |
[코틀린/변수] var과 val의 차이를 알아보자 (1) | 2024.02.20 |
주코딩의 개발 노트!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!