Android绘制line chart的过程(折线图)

安卓的前端有很多不错的开源框架,最近做了一个项目,用到了7个开源框架,虽然最近没有时间去一点点钻研源码,但是对其中的一些框架还是比较熟悉了。

github上最好的chart框架是MpAndroidCharts,github地址,youtube上也有教学视频,csdn上有中文教程,除此之外还有另外一个很简单的一步一步画折线图的教程,看完以上内容,基本上已经差不多了,下面附上自己的一个demo:

public class MainActivity extends AppCompatActivity {
    public ArrayList setXY(float[] xValues,float[] objects){
        ArrayList y1=new ArrayList<>();
        for (int i = 0; i new Entry(objects[i],xValues[i]));
        }
        return y1;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LineChart lineChart=(LineChart)findViewById(R.id.line_chart);
        LineChart  lineChart2=(LineChart)findViewById(R.id.line_chart2);
        float[] floatx={1,2,3,4,5,6,7,8};
        float[] floaty={2,3,4,5,6,7,8,9};
        float[] floatx2={1,2,3,4,5,6,7,8};
        float[] floaty2={3,4,5,6,7,8,9,10};
        ArrayList lineDataSets = new ArrayList<>();
        LineDataSet lineDataSet = new LineDataSet(this.setXY(floatx,floaty),"实例一");
        lineDataSet.setDrawCircles(false);
        lineDataSet.setColor(Color.BLACK);
        LineDataSet lineDataSetY = new LineDataSet(this.setXY(floatx2,floaty2),"实例二");
        lineDataSetY.setDrawCircles(false);
        lineDataSet.setColor(Color.RED);
        lineDataSets.add(lineDataSet);
        lineDataSets.add(lineDataSetY);
        this.setLineChart(lineChart);
        this.setLineChart(lineChart2);
        lineChart.setData(new LineData(lineDataSets));
        lineChart2.setData(new LineData(lineDataSets));
    }
    public void setLineChart(LineChart lineChart){
        //设置描述
        lineChart.setDescription("");
        Legend l = lineChart.getLegend();
        //l.setMaxSizePercent(0.8f);
        l.setFormSize(10f); // set the size of the legend forms/shapes
        l.setForm(Legend.LegendForm.CIRCLE); // set what type of form/shape should be used
      l.setPosition(Legend.LegendPosition.RIGHT_OF_CHART);
        l.setTextSize(12f);
        l.setTextColor(Color.BLACK);
        l.setXEntrySpace(5f); // set the space between the legend entries on the x-axis
        l.setYEntrySpace(5f); // set the space between the legend entries on the y-axis
        XAxis xAxis = lineChart.getXAxis();
        //设置显示X轴
        xAxis.setEnabled(true);
        //设置显示位置
        xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
        //设置是否绘制x轴
        xAxis.setDrawAxisLine(true);
        //设置是否显示x轴的坐标
        xAxis.setDrawLabels(true);
        xAxis.setTextSize(10f);
        //设置网格线
        xAxis.setDrawGridLines(false);
        xAxis.setTextColor(Color.BLACK);
        xAxis.setTextSize(10f);
        //设置网格线的宽度
        xAxis.setGridLineWidth(5f);
        xAxis.setGridColor(Color.RED);
        xAxis.setAxisLineColor(Color.BLACK);
        //设置x轴的宽度
       // xAxis.setAxisLineWidth(3f);
//设置y轴
        YAxis leftAxis = lineChart.getAxisLeft();
        YAxis rightAxis = lineChart.getAxisRight();
        //撤销最小值和最大值
        leftAxis.resetAxisMinValue();
        leftAxis.resetAxisMaxValue();
        rightAxis.setEnabled(false);
    }
}

xml

"1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.hb.chart_mp.MainActivity"
    android:orientation="horizontal"
    >
    "match_parent"
        android:layout_height="match_parent">
"match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    >
    <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/line_chart"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:background="#ffffff"
        android:layout_margin="16dp">
    com.github.mikephil.charting.charts.LineChart>
    <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/line_chart2"
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:background="#ffffff"
        android:layout_margin="16dp">
    com.github.mikephil.charting.charts.LineChart>
    
    

效果图:
没有,嘿嘿,还是放上吧,可以显示legend

你可能感兴趣的:(GitHub,chart,android)