override fun onMeasure()

in platf-android/src/androidMain/kotlin/org/jetbrains/letsPlot/android/canvas/CanvasView2.kt [88:110]


    override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
        val density = resources.displayMetrics.density

        val figureWidthInDp = figure?.size?.x ?: 0
        val figureHeightInDp = figure?.size?.y ?: 0

        val desiredWidth = (figureWidthInDp * density).toInt()
        val desiredHeight = (figureHeightInDp * density).toInt()

        val finalWidth = when (MeasureSpec.getMode(widthMeasureSpec)) {
            MeasureSpec.EXACTLY -> MeasureSpec.getSize(widthMeasureSpec)
            MeasureSpec.AT_MOST -> minOf(desiredWidth, MeasureSpec.getSize(widthMeasureSpec))
            else -> desiredWidth
        }

        val finalHeight = when (MeasureSpec.getMode(heightMeasureSpec)) {
            MeasureSpec.EXACTLY -> MeasureSpec.getSize(heightMeasureSpec)
            MeasureSpec.AT_MOST -> minOf(desiredHeight, MeasureSpec.getSize(heightMeasureSpec))
            else -> desiredHeight
        }

        setMeasuredDimension(finalWidth, finalHeight)
    }