초급 6.뽀모도로 타이머
정리
chain - 가로나 세로의 같은 라인이라면 체인설정 가능
- app:layout_constraintHorizontal_chainStyle="packed"
seekBar - 슬라이더로 이동가능, 여기서는 1분 타이머이므로 max 60
<SeekBar
android:max="60">
seekBar.setOnSeekBarChangeListener의 3개 콜백 함수
override fun onProgressChanged(
seekBar: SeekBar?,
progress: Int,
fromUser: Boolean
) {
if (fromUser) { //사용자가 실제로 조작했을때만 업데이트
updateRemainTimes(progress * 60 * 1000L)
}
}
override fun onStartTrackingTouch(seekBar: SeekBar?) { // 다시 조작시킬 때
currentCountDownTimer?.cancel() //현재 카운트시간을 멈춤
currentCountDownTimer = null
}
override fun onStopTrackingTouch(seekBar: SeekBar?) { // 조작을 멈췄을 때, 카운트 시작
seekBar ?: return // 더이상 카운트다운을 진행하지않음
currentCountDownTimer = createCountDownTimer(seekBar.progress * 60 * 1000L)
currentCountDownTimer?.start() //중간에 코드 수정으로 언제든 null이 될수 있으므로
}
SoundPool
- 오디오 파일을 메모리에 로드해서 빠르게 재생할 수 있는 클래스
null?인 인자일 경우, null이 아닐경우에만 let으로 호출하는 함수
tickingSoundId?.let { soundId ->
soundPool.play(soundId, 1F, 1F, 0, -1, 1F)
//좌우 볼륨, 동시에 재생하는게 아니기 때문에 우선순위는 0, 무한반복 loop -1, 재생속도
}
Pause나 Resume은 원래 각 streamId를 받아 중지, 재개할수있지만
여기서는 활성화함수가 하나이므로 autoPause, autoResume 사용
사운드 미디어 파일들은 많은 메모리가 필요 - 따라서 사용하지않을때 메모리에서 해제
override fun onDestroy() {
super.onDestroy()
soundPool.release() // 로드된 사운드 파일들이 사용하지 않을때 해제됨.
}
themes에서 레이아웃 이전에, 윈도우 색깔자체를 바꿈
<item name="android:windowBackground">@color/pomodoro_red</item>
지금은 롤리팝 상위버전이고, 상태바 색깔바꾸기
<item name="android:statusBarColor" >@color/pomodoro_red</item>
Baseline - text 아래쪽의 선에 맞춤
app:layout_constraintBaseline_toBaselineOf="@id/remainMinutesTextView"
이미지
- 200 * 200dp 사이즈를 벡터 drawable로 사용할것을 권장, 그 이상은 밀도별로 프로젝트에 저장
색상 - 두자리씩 각각 알파, 레드, 그린, 블루 (알파가 00은 투명)
<color name="transparent">#00000000</color>
seekBar 속성
<SeekBar
android:layout_marginHorizontal="20dp" // 좌우동시에 마진
android:max="60" //최대값 60
android:progressDrawable="@color/transparent" //progress색깔
android:thumb="@drawable/ic_thumb" // 커서
app:tickMark="@drawable/drawable_tick_mark" /> //tickMark를 android가 아닌 app으로 설정해야 깔끔함.
Author And Source
이 문제에 관하여(초급 6.뽀모도로 타이머), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@qk1890/앱개발-6.-뽀모도로-타이머저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)