效果图:
1.导入依赖
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.编写代码
2.1在页面布局代码中添加:
<com.github.mikephil.charting.charts.LineChartandroid:id="@+id/chart"android:layout_width="match_parent"android:layout_height="200dp"android:layout_weight="1" />
2.2在Java文件中编写代码:
private LineChart chart;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_devices_demo);chart = findViewById(R.id.chart);initData();
}
private void initData(){// 准备数据List<Entry> entriesTemperature = new ArrayList<>();List<Entry> entriesHumidity = new ArrayList<>();List<Entry> 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();}