**APP为了能让用户对数据有更直观,更便捷的认识,我们通常都选择了以图表的方式展示给用户,如折线图、饼图、条形图等…今天和大家分享下MPAndroidChart,一个强大便捷的图标控件。
Android MPAndroidChart之饼图PieChart
Android MPAndroidChart之折线图LineChart
本篇我们分享下饼状图BarChart的使用**
>>>>先贴张效果图<<<<
第一步,添加依赖
//曲线图 饼状图 折线图
implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
第二步,添加布局
<com.github.mikephil.charting.charts.BarChart
android:id="@+id/barChart"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center" />
第三步设置属性
fun getDate(): Map<String, List<BarEntry>> {
//造了两条数据
val list: MutableList<BarEntry> = ArrayList()
list.add(BarEntry(1F,10F))
list.add(BarEntry(2F,60F))
list.add(BarEntry(3F,30F))
list.add(BarEntry(4F,80F))
list.add(BarEntry(5F,40F))
// list.add(BarEntry("".toFloat(),10F))
// list.add(BarEntry("".toFloat(),10F))
// list.add(BarEntry("".toFloat(),10F))
val map: HashMap<String, List<BarEntry>> = HashMap()
map["map"] = list
// map["girl"] = list1
return map
}
private fun showBarChart(
map: Map<String, List<BarEntry>>,
barChart: BarChart
) {
//装载男女生数据
val barDataSet = BarDataSet(map["map"], "增长率")
barDataSet.color = Color.rgb(199, 255, 140)
// val barDataSet1 = BarDataSet(map["girl"], "非金属")
// barDataSet1.color = Color.rgb(255, 240, 157)
//载入数据集
val barData = BarData()
barData.addDataSet(barDataSet)
// barData.addDataSet(barDataSet1)
// barData.barWidth = 20F;
barChart.data = barData
//可以用它来设置图的大小显示
// barChart.setExtraOffsets(15F, 80F, 20F, 45F)
//右下角标识描述,需要可以打开
val description = Description()
description.text = "柱状图"
description.isEnabled = false
barChart.description = description
//打开缩放交互
barChart.setScaleEnabled(false)
//关闭网格线水平网格线
barChart.axisLeft.setDrawGridLines(true)
barChart.xAxis.setDrawGridLines(false)
//关闭坐标纵轴
// barChart.axisLeft.isEnabled = false
//关闭右边纵轴
//barChart.getAxisRight().setEnabled(false)
//是否显示竖直标尺线
barChart.setTouchEnabled(false); // 设置是否可以触摸
barChart.xAxis.labelRotationAngle = 330F;//设置横坐标倾斜角度
//将x轴设置在下方
val xAxis: XAxis = barChart.xAxis
xAxis.position = XAxis.XAxisPosition.BOTTOM
date.add("2021/01/08")
date.add("2021/01/09")
date.add("2021/01/10")
date.add("2021/01/11")
date.add("2021/01/12")
//xAxis.axisMinimum = 0f
xAxis.labelCount = date.size
//设置X轴坐标自定义数据格式
xAxis.valueFormatter = object : IndexAxisValueFormatter() {
override fun getFormattedValue(value: Float): String {
val index = value.toInt()-1
return if (index < 0 || index >= date.size) {
"1"
} else {
date[index]
}
}
}
//设置y轴右边不显示
val yAxis: YAxis = barChart.axisRight
yAxis.isEnabled = false
val yy: YAxis = barChart.axisLeft
// yy.axisMinimum = 0f
//yy.axisMaximum = 10f
// yy.labelCount = 10
}
第四步,调用函数
showBarChart(getDate(), barChart)