字体选择 自定义view+1

This commit is contained in:
renhaoting 2025-10-30 18:29:21 +08:00
parent 70e3aa1290
commit 35481519c5
3 changed files with 27 additions and 4 deletions

View File

@ -14,12 +14,12 @@ class FontSetView @JvmOverloads constructor(
) : LinearLayout(context, attrs, defStyleAttr) {
companion object {
private var GAP = 1
private var GAP = 2
}
private var mBinding: LayoutFontSetViewBinding
private var mFontValue = 20
private var mFontValue = 16 // 12, 14, 16, 18, 20
init {
mBinding = LayoutFontSetViewBinding.inflate(LayoutInflater.from(context), this, true)
@ -34,13 +34,35 @@ class FontSetView @JvmOverloads constructor(
ivFontPlus.setOnClickListener {
mFontValue -= GAP
tvFontValue.text = mFontValue.toString()
levelSeekbar.setLevel((mFontValue - 16)/GAP)
}
ivFontAdd.setOnClickListener {
mFontValue += GAP
tvFontValue.text = mFontValue.toString()
levelSeekbar.setLevel((mFontValue - 16)/GAP)
}
levelSeekbar.setOnLevelChangeListener(object : LevelSeekBar.OnLevelChangeListener {
override fun onLevelChanged(
seekBar: LevelSeekBar,
level: Int,
fromUser: Boolean
) {
mFontValue = 16 + level * GAP
tvFontValue.text = mFontValue.toString()
}
override fun onStartTrackingTouch(seekBar: LevelSeekBar) {
}
override fun onStopTrackingTouch(seekBar: LevelSeekBar) {
}
})
}
}

View File

@ -115,7 +115,7 @@ class LevelSeekBar @JvmOverloads constructor(
val trackBottom = centerY + trackHeight / 2
trackPaint.color = trackColor
val trackRect = RectF(0f + nodeWidth/2, trackTop, width.toFloat(), trackBottom - nodeWidth/2)
val trackRect = RectF(0f + thumbRadius/2 + 6, trackTop, width.toFloat() - thumbRadius/2, trackBottom - nodeWidth/2 - 6)
canvas.drawRoundRect(trackRect, trackEndRadius, trackEndRadius, trackPaint)
}
@ -129,7 +129,7 @@ class LevelSeekBar @JvmOverloads constructor(
nodePaint.color = if (i <= currentLevel) activeNodeColor else nodeColor
//canvas.drawCircle(x, centerY, nodeRadius, nodePaint)
val trackRect = RectF(x - thumbRadius/2, centerY - nodeHeight/2 + 6, x + thumbRadius/2, centerY + nodeHeight/2)
val trackRect = RectF(x - nodeWidth/2, centerY - nodeHeight/2 + 6, x + nodeWidth/2, centerY + nodeHeight/2)
canvas.drawRoundRect(trackRect, trackEndRadius, trackEndRadius, nodePaint)
}
}

View File

@ -74,6 +74,7 @@
<com.remax.visualnovel.ui.chat.ui.LevelSeekBar
android:id="@+id/level_seekbar"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_20"
android:layout_centerVertical="true"