效果图:

1.1在项目根目录下的build.gradle文件中添加代码(注意不是app下的build.gradle):
maven { url 'https://jitpack.io' }

1.2在app下的build.gradle中的依赖下添加:
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
(添加后记得同步)
2.1在页面布局代码中添加:
- <com.github.mikephil.charting.charts.LineChart
- android:id="@+id/chart"
- android:layout_width="match_parent"
- android:layout_height="200dp"
- android:layout_weight="1" />
2.2在Java文件中编写代码:
- private LineChart chart;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_devices_demo);
- chart = findViewById(R.id.chart);
- initData();
- }
- private void initData(){
- // 准备数据
- List
entriesTemperature = new ArrayList<>(); - List
entriesHumidity = new ArrayList<>(); - List
entriesPm = new ArrayList<>(); - entriesTemperature.add(new Entry(0,32));
- entriesTemperature.add(new Entry(1,33));
- entriesTemperature.add(new Entry(2,28));
- entriesTemperature.add(new Entry(3,30));
- entriesTemperature.add(new Entry(4,27));
- entriesTemperature.add(new Entry(5,31));
-
- entriesHumidity.add(new Entry(0,52));
- entriesHumidity.add(new Entry(1,60));
- entriesHumidity.add(new Entry(2,44));
- entriesHumidity.add(new Entry(3,55));
- entriesHumidity.add(new Entry(4,70));
- entriesHumidity.add(new Entry(5,65));
-
- entriesPm.add(new Entry(0,25));
- entriesPm.add(new Entry(1,36));
- entriesPm.add(new Entry(2,20));
- entriesPm.add(new Entry(3,65));
- entriesPm.add(new Entry(4,43));
- entriesPm.add(new Entry(5,20));
- // 创建数据集
- LineDataSet temperatureDataSet = new LineDataSet(entriesTemperature, "温度(℃)");
- LineDataSet humidityDataSet = new LineDataSet(entriesHumidity, "湿度(%)");
- LineDataSet pmDataSet = new LineDataSet(entriesPm, "PM2.5(μg/m³)");
- // // 设置温度数据集样式
- temperatureDataSet.setLineWidth(2.5f); // 设置线的宽度
- temperatureDataSet.setColor(Color.BLUE); // 设置线的颜色
- temperatureDataSet.setCircleColor(Color.BLUE); // 设置数据点的颜色(可选)
- temperatureDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)
- temperatureDataSet.setFillColor(Color.parseColor("#009AD1")); // 设置填充颜色(可选)
- temperatureDataSet.setDrawFilled(true); // 启用填充(可选)
- temperatureDataSet.setDrawCircles(true); // 是否显示数据点(可选)
- temperatureDataSet.setDrawValues(true); // 是否显示数据值(可选)
- temperatureDataSet.setValueTextColor(Color.WHITE); // 设置数据值文本的颜色(如果显示的话)
- // // 设置湿度数据集样式
- humidityDataSet.setLineWidth(2.5f); // 设置线的宽度
- humidityDataSet.setColor(Color.GREEN); // 设置线的颜色
- humidityDataSet.setCircleColor(Color.GREEN); // 设置数据点的颜色(可选)
- humidityDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)
- humidityDataSet.setFillColor(ColorTemplate.MATERIAL_COLORS[0]); // 设置填充颜色(可选)
- humidityDataSet.setDrawFilled(true); // 启用填充(可选)
- humidityDataSet.setDrawCircles(true); // 是否显示数据点(可选)
- humidityDataSet.setDrawValues(true); // 是否显示数据值(可选)
- humidityDataSet.setValueTextColor(Color.BLACK); // 设置数据值文本的颜色(如果显示的话)
- // 设置PM2.5数据集样式
- pmDataSet.setLineWidth(2.5f); // 设置线的宽度
- pmDataSet.setColor(Color.YELLOW); // 设置线的颜色
- pmDataSet.setCircleColor(Color.YELLOW); // 设置数据点的颜色(可选)
- pmDataSet.setCircleRadius(4f); // 设置数据点的半径(可选)
- pmDataSet.setFillColor(Color.parseColor("#FFFFA0")); // 设置填充颜色(可选)
- pmDataSet.setDrawFilled(true); // 启用填充(可选)
- pmDataSet.setDrawCircles(true); // 是否显示数据点(可选)
- pmDataSet.setDrawValues(true); // 是否显示数据值(可选)
- pmDataSet.setValueTextColor(Color.BLACK); // 设置数据值文本的颜色(如果显示的话)
- // 创建一个LineData对象,并将数据集集合传递给它
- LineData data = new LineData(temperatureDataSet,humidityDataSet,pmDataSet);
- // 将数据设置给图表
- chart.setData(data);
- // 刷新图表以显示数据
- chart.invalidate();
- }