【问题标题】:MPAndroidChart barchart y axis label colorsMPAndroidChart 条形图 y 轴标签颜色
【发布时间】:2018-05-09 09:21:49
【问题描述】:

是否可以在 mpandroidchart 中为 y 轴标签设置不同的标签颜色?怎么可能?任何帮助表示赞赏。

【问题讨论】:

  • 我想设置标签颜色,我想为每个标签设置不同的标签颜色。例如:- 0 - 红色,1- 蓝色等

标签: android bar-chart mpandroidchart


【解决方案1】:

添加以下代码行

chart.getAxisLeft().setTextColor(ContextCompat.getColor(this, R.color.red)); // left y-axis

【讨论】:

  • 我想要每个标签的标签颜色不同。例如:- 0 - 红色,1- 蓝色等
  • 你正在使用 Mpchart 依赖或库?
  • 我在 gradle 中添加了依赖。
  • 据我所知,没有办法设置左侧值的不同颜色,因为它们提供了单一的方法,即 setTextColor。此外,如果您检查那里的库,它们的所有图表在左侧都有单色值。 github.com/PhilJay/MPAndroidChart
  • 很不幸的样子!
【解决方案2】:

您可以像这样自定义 YAxisRenderer 来实现它。 将其添加到您的图表中 chart.setRendererLeftYAxis(new MyYAxisLeftRenderer(chart.getViewPortHandler(), chart.getAxisLeft(),chart.getTransformer(YAxis.AxisDependency.LEFT)));

public class MyYAxisLeftRenderer extends YAxisRenderer {


@Override
protected void drawYLabels(Canvas c, float fixedPosition, float[] positions, float offset) {
    final int from = mYAxis.isDrawBottomYLabelEntryEnabled() ? 0 : 1;
    final int to = mYAxis.isDrawTopYLabelEntryEnabled()
            ? mYAxis.mEntryCount
            : (mYAxis.mEntryCount - 1);

    // draw
    for (int i = from; i < to; i++) {

        String text = mYAxis.getFormattedLabel(i);

        // change y label color here before drawing (i is an index of label)
         mAxisLabelPaint.setColor();

        c.drawText(text, fixedPosition, positions[i * 2 + 1] + offset, mAxisLabelPaint);
    }
}

【讨论】:

    猜你喜欢
    • 2015-07-05
    • 2016-12-16
    • 2013-06-21
    • 1970-01-01
    • 2016-12-15
    • 2022-01-14
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多