From 35481519c5487c63ac8503a3c544a95293c68d13 Mon Sep 17 00:00:00 2001 From: renhaoting <370797079@qq.com> Date: Thu, 30 Oct 2025 18:29:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E4=BD=93=E9=80=89=E6=8B=A9=20?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89view+1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../visualnovel/ui/chat/ui/FontSetView.kt | 26 +++++++++++++++++-- .../visualnovel/ui/chat/ui/LevelSeekbar.kt | 4 +-- .../main/res/layout/layout_font_set_view.xml | 1 + 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt index 88477da..f0b789b 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/FontSetView.kt @@ -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) { + + } + + }) + } } diff --git a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/LevelSeekbar.kt b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/LevelSeekbar.kt index 176c750..90301a1 100644 --- a/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/LevelSeekbar.kt +++ b/VisualNovel/app/src/main/java/com/remax/visualnovel/ui/chat/ui/LevelSeekbar.kt @@ -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) } } diff --git a/VisualNovel/app/src/main/res/layout/layout_font_set_view.xml b/VisualNovel/app/src/main/res/layout/layout_font_set_view.xml index 1114bd9..b5df59d 100644 --- a/VisualNovel/app/src/main/res/layout/layout_font_set_view.xml +++ b/VisualNovel/app/src/main/res/layout/layout_font_set_view.xml @@ -74,6 +74,7 @@