From fb9c138eb4e68c55b9269b75931e3d26c976c7ea Mon Sep 17 00:00:00 2001 From: klaus Date: Mon, 4 Dec 2023 22:25:16 +0900 Subject: [PATCH] =?UTF-8?q?=EB=9D=BC=EC=9D=B4=EB=B8=8C=20=EB=B0=A9=20?= =?UTF-8?q?=EB=A3=B0=EB=A0=9B=20-=20=EC=BB=AC=EB=9F=AC=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sodalive/live/room/LiveRoomViewModel.kt | 2 +- .../live/roulette/RouletteInvertedTriangle.kt | 4 +-- .../sodalive/live/roulette/RouletteView.kt | 27 +++++++------------ 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomViewModel.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomViewModel.kt index e34742b..a481736 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomViewModel.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/room/LiveRoomViewModel.kt @@ -910,7 +910,7 @@ class LiveRoomViewModel( val rouletteItems = mutableListOf() items.asSequence().forEach { item -> - repeat(item.weight) { + repeat(item.weight * 10) { rouletteItems.add(item.title) } } diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/roulette/RouletteInvertedTriangle.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/roulette/RouletteInvertedTriangle.kt index 8a1159f..7c07018 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/roulette/RouletteInvertedTriangle.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/roulette/RouletteInvertedTriangle.kt @@ -32,9 +32,9 @@ class RouletteInvertedTriangle @JvmOverloads constructor( // Define the new path for the inverted triangle // Starting point (top of the triangle) - trianglePath.moveTo((width / 2f) - 30, 10f) + trianglePath.moveTo((width / 2f) - 30, -10f) // Line to bottom left of the triangle - trianglePath.lineTo((width / 2f) + 30, 10f) + trianglePath.lineTo((width / 2f) + 30, -10f) // Line to bottom right of the triangle trianglePath.lineTo(width / 2f, 10f + triangleSize) // Close the path to form a triangle diff --git a/app/src/main/java/kr/co/vividnext/sodalive/live/roulette/RouletteView.kt b/app/src/main/java/kr/co/vividnext/sodalive/live/roulette/RouletteView.kt index f8ff981..471e227 100644 --- a/app/src/main/java/kr/co/vividnext/sodalive/live/roulette/RouletteView.kt +++ b/app/src/main/java/kr/co/vividnext/sodalive/live/roulette/RouletteView.kt @@ -20,8 +20,6 @@ class RouletteView @JvmOverloads constructor( ) : View(context, attrs, defStyleAttr) { private var rect = RectF() - - private val bgPaint = Paint() private val fillPaint = Paint() private val textPaint = Paint() private val strokePaint = Paint() @@ -29,23 +27,17 @@ class RouletteView @JvmOverloads constructor( var items = listOf() private val colors = listOf( - Color.parseColor("#e6548f7d"), - Color.parseColor("#e62d7390"), - Color.parseColor("#e64d6aa4"), - Color.parseColor("#e659548f"), - Color.parseColor("#e6d38c38"), - Color.parseColor("#e6d85e37"), + Color.parseColor("#F5D55A"), + Color.parseColor("#E4813B"), + Color.parseColor("#E6AAC1"), + Color.parseColor("#8FCEEA"), + Color.parseColor("#CD5880"), + Color.parseColor("#C2C85E"), ) init { - bgPaint.apply { - color = Color.WHITE - style = Paint.Style.FILL - isAntiAlias = true - } - strokePaint.apply { - color = Color.BLACK + color = Color.WHITE style = Paint.Style.STROKE strokeWidth = 10f isAntiAlias = true @@ -77,18 +69,17 @@ class RouletteView @JvmOverloads constructor( override fun onDraw(canvas: Canvas) { super.onDraw(canvas) - canvas.drawCircle(rect.centerX(), rect.centerY(), rect.width() / 2, bgPaint) val totalWeight = items.asSequence().map { it.weight }.sum() var startAngle = -90f items.forEachIndexed { index, (option, weight) -> - val sweepAngle = (weight / totalWeight.toFloat()) * 360f - 1 + val sweepAngle = (weight / totalWeight.toFloat()) * 360f fillPaint.color = colors[index] canvas.drawArc(rect, startAngle, sweepAngle, true, fillPaint) drawOptionText(canvas, option, startAngle, sweepAngle) - startAngle += sweepAngle + 1 + startAngle += sweepAngle } canvas.drawCircle(rect.centerX(), rect.centerY(), rect.width() / 2, strokePaint)