250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Compose
- DART
- activity
- intent
- android
- TEST
- Dialog
- 앱
- textfield
- LifeCycle
- Button
- appbar
- livedata
- 계측
- 테스트
- binding
- Navigation
- 안드로이드
- scroll
- textview
- viewmodel
- tabbar
- Coroutines
- ScrollView
- CustomScrollView
- 앱바
- Kotlin
- data
- Flutter
- drift
Archives
- Today
- Total
Study Record
Button 색상 바꾸기 , 바탕색(windowBackground) 본문
728x90
Button 색상 바꾸기
원래의 Button 컴퍼넌트는 MaterialComponents 등 어떤 특정 테마에 미리 지정된 생상을 따라가기 때문에 Button 에 색상을 지정하려면 테마를 바꾸거나 <Button>에서 <AppCompatButton>를 사용한다.
<androidx.appcompat.widget.AppCompatButton
app:layout_constraintEnd_toEndOf="@id/openButton"
app:layout_constraintStart_toStartOf="@+id/openButton"
app:layout_constraintTop_toBottomOf="@+id/openButton"
android:layout_width="10dp"
android:layout_height="10dp"
android:background="@color/black"
android:id="@+id/changePasswordButton"/>
바탕색(WindowBackground)
하나의 activity에 배경색을 주는 방법은 아래오 같이 xml 파일의 최상단 레이아웃에 background 속성으로 배경색을 설정하는 것이다.
<?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"
android:background="@color/pomodoro_red"
tools:context=".MainActivity">
<TextView
android:id="@+id/remainMinutesTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="00"
android:textSize="40sp"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/remainSecondsTextView"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
하지만 이렇게 되면 실행하게 되면 다음의 onCreate 과정의 setContentView 에서 xml 파일이 로드될 때 배경색이 설정되기 때문에 앱을 실행했을 때 다른색(ex. 하얀색)이었다가 설정한 배경색으로 바뀔 수 있다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 여기서 xml 파일 로드
setContentView(R.layout.activity_main)
}
}
이러한 문제를 해결하기 위해 theme 파일에 windowBackground 색상을 배경색으로 설정하면 좀 더 자연스럽게 색상을 설정할 수 있다.
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Timer" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
<item name="android:windowBackground">@color/pomodoro_red</item>
</style>
</resources>
728x90
'안드로이드' 카테고리의 다른 글
간단한 ImageButton에 ripple 넣기 (0) | 2022.04.09 |
---|---|
EditText 속성 - action 버튼 누르면 키보드 내리기, 이벤트 연결하기 (0) | 2022.04.09 |
[안드로이드] 쥬디의 찜질방 게임 만들기 - 5. 게임 종료 (0) | 2021.12.27 |
[안드로이드] 쥬디의 찜질방 게임 만들기 - 4. 게임 만들기 (2) (0) | 2021.12.26 |
[안드로이드] 쥬디의 찜질방 게임 만들기 - 4. 게임 만들기 (1) (0) | 2021.12.23 |