LineChartView

折线统计图、点击显示面板(标签|值)

预览

竖屏效果
在这里插入图片描述

横屏屏效果
在这里插入图片描述

名字资源
AAR
GitHub
Gitee

Maven

1.build.grade | setting.grade

repositories {
	...
	maven { url 'https://jitpack.io' }
}

2./app/build.grade

dependencies {
	implementation 'com.github.RelinRan:LineChartView:2022.7.22.1'
}

xml

<androidx.widget.LineChartView
    android:id="@+id/line_chart"
    android:layout_width="match_parent"
    android:layout_height="300dp"
    app:descriptionXName="日期"
    app:descriptionXUnit="天"
    app:descriptionYName="人数"
    app:descriptionYUnit="人"
    app:simulationData="true"
    app:tickMarkHorizontalCount="31"
    app:tickMarkVerticalCount="10"
    app:unitVerticalTickMarkValue="200" />

attrs.xml

<!--模拟数据-->
<attr name="simulationData" format="boolean" />
<!--线条颜色-->
<attr name="markLineColor" format="color" />
<!--线条宽度-->
<attr name="markLineStrokeWidth" format="dimension" />
<!--字体颜色-->
<attr name="markTextColor" format="color" />
<!--字体大小-->
<attr name="markTextSize" format="dimension" />
<!--折现颜色-->
<attr name="chartLintColor" format="color" />
<!--折现填充颜色-->
<attr name="chartLintSolidColor" format="color" />
<!--折现宽度-->
<attr name="chartLineStrokeWidth" format="dimension" />
<!--刻度线左边间距-->
<attr name="tickMarkMarginLeft" format="dimension" />
<!--刻度线文字间距-->
<attr name="tickMarkTextMargin" format="dimension" />
<!--刻度线底部间距-->
<attr name="tickMarkMarginBottom" format="dimension" />
<!--刻度线右边间距-->
<attr name="tickMarkMarginRight" format="dimension" />
<!--刻度值宽度-->
<attr name="tickMarkWH" format="dimension" />
<!--刻度线(垂直)段数-->
<attr name="tickMarkVerticalCount" format="integer" />
<!--刻度线(水平)段数-->
<attr name="tickMarkHorizontalCount" format="integer" />
<!--垂直单位刻度值-->
<attr name="unitVerticalTickMarkValue" format="integer" />
<!--水平单位刻度值-->
<attr name="unitHorizontalTickMarkValue" format="integer" />
<!--水平刻度开始值-->
<attr name="horizontalTickMarkStartValue" format="integer" />
<!--点击范围-->
<attr name="coordinateDownRange" format="dimension" />
<!--圆点半径-->
<attr name="circleRadius" format="dimension" />
<!--圆点外圈间距-->
<attr name="circleStrokeWidth" format="dimension" />
<!--圆点外圈颜色-->
<attr name="circleStrokeColor" format="color" />
<!--圆点填充颜色-->
<attr name="circleSolidColor" format="color" />
<!--描述信息背景颜色-->
<attr name="descriptionBackgroundColor" format="color" />
<!--描述信息背景圆角大小-->
<attr name="descriptionBackgroundRadius" format="dimension" />
<!--描述信息背景圆角大小-->
<attr name="descriptionTextSize" format="dimension" />
<!--描述信息文字垂直间距-->
<attr name="descriptionTextSpace" format="dimension" />
<!--描述信息文字颜色-->
<attr name="descriptionTextColor" format="color" />
<!--描述信息面板宽度-->
<attr name="descriptionWidth" format="dimension" />
<!--描述信息面板高度-->
<attr name="descriptionHeight" format="dimension" />
<!--描述信息面板距离上方间距-->
<attr name="descriptionMarginTop" format="dimension" />
<!--描述信息面板 - x轴名称-->
<attr name="descriptionXName" format="string" />
<!--描述信息面板 - x轴单位-->
<attr name="descriptionXUnit" format="string" />
<!--描述信息面板 - y轴名称-->
<attr name="descriptionYName" format="string" />
<!--描述信息面板 - y轴单位-->
<attr name="descriptionYUnit" format="string" />

使用

LineChartView line_chart = findViewById(R.id.line_chart);
//数据源
List<Double> data = new ArrayList<>();
for (int i = 0; i < 31; i++) {
    double value = 1 + new Random().nextInt(1800);
    data.add(value);
}
line_chart.setDatasource(data);
//点击事件
line_chart.setOnLineChartPolylineClickListener((v, polyline) -> {

});