less than 1 minute read


처음 레이아웃을 구성하고 화면에 위젯을 추가하여 그리는데 버튼색 변경이 되지 않았다. 문제는 backgroundTint 속성 때문이었는데 이놈을 해결하면 버튼 색상이 변경된다. 해결방법은 아래와 같다.

1. backgroundTint 속성 지정

버튼색을 지정하여 변경할때 backgroundTint 속성을 같이 지정한다.

1
2
android:background="#FF0000"
android:backgroundTint="#FF0000"


2. Button 대신 AppcompatButton 사용

기존에 사용하던 Button 대신 다른타입의 버튼을 사용하면 버튼 색상변경이 가능하다.

2.1 androidx.appcompat.widget.AppCompatButton

1
2
3
4
<androidx.appcompat.widget.AppCompatButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="appCompatButton" />

2.2 android.widget.Button

1
2
3
4
<android.widget.Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="androidButton" />


3. Default Theme 변경하기

안드로이드의 기본 테마가 변경되면서 문제가 발생한다고 하는데 다른 테마를 적용하면 backgroundTint 설정을 따로 하지 않아도 버튼색상이 변경가능하다.

values > theme > theme.xml을 열어 4번째 줄 ‘style’ 태그를 수정하면 되는데,
기본 테마는 ‘Theme.MaterialComponents.DayNight.DarkActionBar’로 설정되어 있고 ‘Theme.AppCompat.Light’로 수정하면 된다.
테마를 변경하는 방법은 이것말고 몇가지가 더 있는데 이 방법이 가장 간단한 것 같다.

1
<style name="Theme.Sample_App" parent="Theme.AppCompat.Light">