如何像这样的图像动态创建折线图

时间:2018-10-15 10:33:47

标签: android paint android-graphview

Line Graph

我有5个动态数据,其结果为+1或-1,如果结果为+1,则图形方向为向上;如果结果为-1,则图形方向为向下。

1 个答案:

答案 0 :(得分:0)

您问题中的图像无法查看,但我可以放一个示例,以了解如何在您的android应用中轻松绘制折线图。

首先-如评论中所述-您可以使用(main-4hIy5yvR) ➜ main time python ./main.py python ./main.py 0.07s user 0.02s system 15% cpu 0.596 total (main-4hIy5yvR) ➜ main time python ./main.py python ./main.py 0.08s user 0.02s system 49% cpu 0.203 total 。您可以将其添加到您的项目中,如下所示:

MPAndroidChart

这是我在个人项目中使用的默认折线图示例。

 implementation "com.github.PhilJay:MPAndroidChart:v3.0.3"

您可以将其添加到xml布局中,如下所示:

open class DefaultLineChart @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyle: Int = 0)
    : LineChart(context, attrs, defStyle) {

    init {
        setupChart()
    }

    private fun setupChart() {

        // Init Description
        val description = Description().apply {
            isEnabled = false
        }
        setDescription(description)

        // Init GridBackground
        setGridBackgroundColor(android.R.color.white)
        setDrawGridBackground(true)

        // Init Borders
        setDrawBorders(true)
        setBorderColor(android.R.color.black)
        setBorderWidth(1f)

        // Init Other Properties
        setPinchZoom(false)
        isDoubleTapToZoomEnabled = false
        isDragEnabled = true
        setNoDataText(context.getString(R.string.info_text_no_content))
        setScaleEnabled(true)

        // Init Legend
        val legend = legend.apply {
            isEnabled = false
        }

        // Init xAxis
        val xAxis = xAxis.apply {
            isEnabled = true
            setCenterAxisLabels(false)
            gridColor = android.R.color.white
            setAvoidFirstLastClipping(false)
            setDrawLimitLinesBehindData(true)
            position = XAxis.XAxisPosition.BOTTOM
        }


        // Init leftAxis
        val leftAxis = axisLeft.apply {
            axisMinimum = 0f
            setDrawAxisLine(false)
            setDrawZeroLine(true)
            setDrawGridLines(true)
            gridColor = android.R.color.black
            axisLineColor = android.R.color.black
        }

        val rightAxis = axisRight.apply {
            isEnabled = false
        }
    }

    fun setChartTitle(title: String) {
        val description = Description().apply {
            text = title
            isEnabled = true
        }
        setDescription(description)
    }
}

最后,您可以按照以下代码绘制图表:

<path_to_your_class.DefaultLineChart
                    android:layout_width="match_parent"
                    android:layout_height="400dp"
                    android:layout_marginTop="16dp"/>

您可以从here中找到示例实现。