-
Notifications
You must be signed in to change notification settings - Fork 59
/
ColorSeekBarFragment.kt
115 lines (98 loc) · 4.37 KB
/
ColorSeekBarFragment.kt
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
package com.rtugeek.android.colorseekbardemo.fragment
import android.graphics.Color
import android.os.Bundle
import android.os.Handler
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.SeekBar
import androidx.fragment.app.Fragment
import com.rtugeek.android.colorseekbar.thumb.DefaultThumbDrawer
import com.rtugeek.android.colorseekbardemo.Utils
import com.rtugeek.android.colorseekbardemo.databinding.FragmentColorSeekBarBinding
import kotlinx.android.synthetic.main.fragment_color_seek_bar.*
/**
* A placeholder fragment containing a simple view.
*/
class ColorSeekBarFragment : Fragment() {
private var _binding: FragmentColorSeekBarBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = FragmentColorSeekBarBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// colorSeekBar.thumbDrawer = DefaultThumbDrawer(15, Color.BLACK, 3, Color.WHITE)
colorSeekBar.color = -16777216
colorSeekBar.setOnColorChangeListener { progress, color ->
textView.setTextColor(colorSeekBar.color)
Log.i(TAG, "===progress:$progress-color:$color===")
}
chkVertical.setOnCheckedChangeListener { _, isChecked ->
colorSeekBar.isVertical = isChecked
}
seek_height.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
colorSeekBar.barHeight = Utils.dp2px(requireContext(), progress.toFloat())
tv_height.text = "Bar Height: ${progress}dp"
}
override fun onStartTrackingTouch(seekBar: SeekBar) {}
override fun onStopTrackingTouch(seekBar: SeekBar) {}
})
seek_border.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
colorSeekBar.borderSize = Utils.dp2px(requireContext(), progress.toFloat())
tv_border.text = "Border Size: ${progress}dp"
}
override fun onStartTrackingTouch(seekBar: SeekBar) {}
override fun onStopTrackingTouch(seekBar: SeekBar) {}
})
seek_thumb_size.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
val thumbDrawer = DefaultThumbDrawer(
Utils.dp2px(requireContext(), progress.toFloat()), Color.WHITE, Color.BLACK
)
thumbDrawer.ringBorderSize = 1
thumbDrawer.ringSize = 5
colorSeekBar.thumbDrawer = thumbDrawer
tv_thumb_size.text = "Thumb Size: ${progress}dp"
}
override fun onStartTrackingTouch(seekBar: SeekBar) {}
override fun onStopTrackingTouch(seekBar: SeekBar) {}
})
chk_enable.setOnCheckedChangeListener { buttonView, isChecked ->
colorSeekBar.isEnabled = isChecked
}
chk_show_thumb.setOnCheckedChangeListener { buttonView, isChecked ->
colorSeekBar.isShowThumb = isChecked
}
seek_radius.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
colorSeekBar.borderRadius = progress
tv_radius.text =
String.format("Bar Radius: %dpx", progress)
}
override fun onStartTrackingTouch(seekBar: SeekBar) {}
override fun onStopTrackingTouch(seekBar: SeekBar) {}
})
}
override fun onStop() {
super.onStop()
}
companion object {
private const val TAG = "ColorSeekBar"
@JvmStatic
fun newInstance(): ColorSeekBarFragment {
return ColorSeekBarFragment()
}
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
}