android - MPAndroidChart Barchart:设置关联到高亮条的标签颜色
问题描述
我目前正在一个项目中使用 MPAndroidChart。我正在使用带有自定义 BarChartRenderer 和 XAxisRenderer 的 BarChart。
我面临的问题是我希望与突出显示(单击)条相关联的标签的颜色与条的颜色相同。
有没有办法通过覆盖库函数/类来做到这一点?
这是我的图表的实际状态的屏幕截图(10 月 16 日的条形图突出显示)。
这就是我想要的最终结果
有没有人试图在 MPAndroidChart 上做这种事情?
解决方案
试试这个对我有用的解决方案:
解决方案是使用自定义 ColoredLabelXAxisRenderer 类扩展 XAxisRenderer,当覆盖有趣的 drawLabels 时,您可以使用 2 个变量 isUpdated:Boolean 和 selectedIndex:Int,当您单击 barChart 时,您需要更改值(isUpdated,selectedIndex)并使用此条件来改变标签的颜色
if (isUpdated && selectedIndex != -1) {
mAxisLabelPaint.color =
getUpdateColorForXValue(selectedIndex, mXAxis.mEntries[j / 2].toInt())
}
并在单击 barChart 时调用构建器并更改这样的值
barChart.setOnChartValueSelectedListener(object : OnChartValueSelectedListener {
override fun onValueSelected(e: Entry?, h: Highlight?) {
var lastValue: ArrayList<String> = arrayListOf()
var beforeLastValue: ArrayList<String> = arrayListOf()
if (e?.x != null && !xValues.isNullOrEmpty() && !yValues.isNullOrEmpty()) {
buildBarChartView(
getCurrency(currency),
xValues,
yValues,
isUpdate = true,
selectedIndex = e.x.toInt()
)
updateBarView()
}
推荐阅读
- python - 过滤数据框,根据某些列的值显示行
- r - grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, 中的警告:字符 0x20 的字体宽度未知
- apache-kafka - 使用不自动注册模式的 kafka-avro-console-producer
- excel - VBA 运行时错误 1004 - 变量有问题?
- angular - 当我单击隐藏和显示按钮时,提交了两次表单
- javascript - dispatchEvent 在 Internet Explorer 11 的 javascript 中不起作用
- sql - 如何在 Flask 应用程序中将可变参数插入 SQL 存储过程
- javascript - JavaScript,对象变量被声明为 NaN 的问题
- c++ - 通过包装器从 C 访问 C++ API 时,如何访问枚举类型?
- mysql - 如何使用 & 符号在 MYSQL 数据库中设置枚举值?