본문:
이 글은 이것이 안드로이드다 with 코틀린(개정판)를 참고하여 작성하였습니다.
작성자 : 홍수정
개발환경은 Windows, Android Studio입니다.
1. SeekBar
볼륨조절 컨르롤에서 많이 볼 수 있음. 음악 플레이어에서 구간을 찾을 때 사용하는 것이라고 함.
(1) MainActivity 코드
package com.example.seekbar2
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.SeekBar
import com.example.seekbar2.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
val binding by lazy{
ActivityMainBinding.inflate(layoutInflater)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
with (binding){
seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
if (fromUser){
textView2.text="$progress"
}
}
override fun onStartTrackingTouch(p0: SeekBar?) {
}
override fun onStopTrackingTouch(p0: SeekBar?) {
}
})
}
}
}
📌(1)-1 onProgressChanged 함수에 대한 설명
seekBar : SeekBar?
=> seekBar 자체가 넘어오게 된다.
progress : Int
=> progress가 현재 탐색 구간값이 넘어온다.
fromUser : Boolean
=> fromUser는 사용자가 터치를 해서 구간탐색을 할 수 있지만 코드에서도 움직일 수 있기때문에 구별을 하기위해서 쓰임
📌(1)-2 if (fromUser) 구간 설명
seekbar를 컨트롤할때 if (fromUser)가 true일 경우만 해주면 된다 (즉, 사람이 터치로 동작시킬때만 코드 실행)
textView.text="$progress"
=> SeekBar의 진행률을 "$progress" 로 텍스트 표현함으로써 textView에 나타낼 수 있음
📌(1)-3 max값 설정 (xml에서 seekBar 위젯을 클릭한 후)
max라는 키워드를 검색하면 max값이 나오는데 SeekBar의 맨 끝값을 설정할 수 있음
(2) SeekBar 실행 동영상
2. RatingBar
배민 어플이라던지 네X버 웹툰에서의 별점이라던지 평점을 매길 때, 많이 보이는 위젯이다.
앞에 seekbar와 비슷한 흐름으로 코드를 짜면 된다.
(1) MainActivity 코드
package com.example.ratingbar
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.LayoutInflater
import com.example.ratingbar.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
val binding by lazy {
ActivityMainBinding.inflate(layoutInflater)}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(binding.root)
with(binding) {
//binding scope 함수 생성
ratingBar.setOnRatingBarChangeListener { ratingBar, rating, fromUser ->
if (fromUser)
textView2.text = "$rating"
}
}
}
}
📌(1)-1 setOnRatingBarChangeListner
setOnRatingBarChangeListner 함수를 보면 아까 SeekBar에서의 seekBar.setOnSeekBarChangeListener 처럼 3개의 값이 seekbar와 비슷한걸 볼 수 있음
📌(1)-2 if (fromUser)
if (fromUser) 를 통해 사용자가 터치를 해서 rating을 하면 textView가 사용자가 rating한 점수로 바뀐다.
(xml에서 ratingBar 위젯을 클릭한 후)
📌(1)-3 numStars
numStars 속성을 통해서 별 숫자 갯수를 바꿀 수 있음
📌(1)-4 rating
rating을 통해 기본값 설정 가능
📌(1)-4 stepsize
stepsize는 디테일하게 범위 조정가능
(2) RatingBar 실행화면
'GDSC HUFS 3기 > Android with Kotlin Team 5' 카테고리의 다른 글
[5팀] 코틀린 안드로이드 기초강의_29~30 | 리사이클러뷰 (0) | 2021.11.03 |
---|---|
[5팀] 코틀린 안드로이드 기초강의_27~28 | 액티비티 ,스피너(1) (0) | 2021.11.01 |
[5팀] 코틀린 안드로이드 기초강의_18~21 | 에디트텍스트, 라디오그룹&버튼 (0) | 2021.10.29 |
[5팀] 코틀린 안드로이드 기초 강의_14~17 | 스코프 함수, 레이아웃, 리스너, 버튼 및 스트링 소스 (0) | 2021.10.29 |
[5팀] 코틀린 안드로이드 기초강의_21~24 | 라디오그룹&버튼, 체크박스, 토글 스위치, 프로그래스바 (0) | 2021.10.29 |