• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

colorList 에서 빨간줄이 ...

23.12.14 09:21 작성 조회수 103

0

언제나 수고많으신 강사님

늘 건강하시고 부자되세요

실행 후 아래와 같은 오류가 발생합니다

 

import android.graphics.Color
import android.util.Size
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.dongguntech.compose_navi_graphes.ui.theme.Compose_Navi_GraphesTheme

@Composable
fun Graph2() {
    GraphPie()

}

@Composable
fun GraphPie() {
    val pieSize1 = 25f
    val pieSize2 = 75f
    val colorList = listOf(Color.RED, Color.BLUE)

    PieChart(
        pieSize1,
        pieSize2,
        colorList,
    )
}

@Composable
fun PieChart(
    pieSize1 : Float,
    pieSize2 : Float,
    colorList : List<Color>
) {
    val totalSize = pieSize1 + pieSize2

    BoxWithConstraints(
        modifier = Modifier.padding(20.dp)
    ) {
        val pieDetailSize = constraints.maxWidth.toFloat()
        Canvas(modifier = Modifier.size(pieDetailSize.dp)){
            val sweep1 = 360 * (pieSize1 / totalSize)
            drawArc(
                color = colorList[0],
                startAngle = 0f,
                sweepAngle = sweep1,
                useCenter = true,
                size = Size(pieDetailSize, pieDetailSize)
            )

            val sweep2 = 360 * (pieSize2 / totalSize)
            drawArc(
                color = colorList[1],
                startAngle = sweep1,
                sweepAngle = sweep2,
                useCenter = true,
                size = Size(pieDetailSize, pieDetailSize)
            )
        }
    }
}

@Preview(showBackground = true)
@Composable
fun Graph2Preview() {
    Compose_Navi_GraphesTheme {
        Graph2()
    }
}

위 코드중에서 아래 캡쳐화면부분중에서

colorList 에서 빨간줄 이 생기네요

 

q3.png

또 실행하면 아래와 같은 오류가 발생합니다

 

q4.png

 

 

 

답변 2

·

답변을 작성해보세요.

1

shafeel2님의 프로필

shafeel2

질문자

2023.12.15

import androidx.compose.ui.graphics.Color
import androidx.compose.ui.geometry.Size

위와 같이 import 하니 빨간줄이 사라졌네요

늘 강사님 건강하시고 부자되세요

0

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import com.example.myapplication.ui.theme.MyApplicationTheme
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.layout.BoxWithConstraints
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.Size
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp

@Composable
fun Graph2() {
    GraphPie()

}

@Composable
fun GraphPie() {
    val pieSize1 = 25f
    val pieSize2 = 75f
    val colorList = listOf(Color.Red, Color.Blue)

    PieChart(
        pieSize1,
        pieSize2,
        colorList,
    )
}

@Composable
fun PieChart(
    pieSize1 : Float,
    pieSize2 : Float,
    colorList : List<Color>
) {
    val totalSize = pieSize1 + pieSize2

    BoxWithConstraints(
        modifier = Modifier.padding(20.dp)
    ) {
        val pieDetailSize = constraints.maxWidth.toFloat()

        Canvas(modifier = Modifier.size(pieDetailSize.dp)){
            val sweep1 = 360 * (pieSize1 / totalSize)
            drawArc(
                color = colorList[0],
                startAngle = 0f,
                sweepAngle = sweep1,
                useCenter = true,
                size = Size(pieDetailSize,pieDetailSize)
            )

            val sweep2 = 360 * (pieSize2 / totalSize)
            drawArc(
                color = colorList[1],
                startAngle = sweep1,
                sweepAngle = sweep2,
                useCenter = true,
                size = Size(pieDetailSize, pieDetailSize)
            )
        }
    }
}

이 코드와 비교해서 한번 해보시겠어요?

 

윗부분의 import 부분의 차이를 자세히 봐주세요~