android - Mp android图表,带条形渐变背景的条形图

标签 android mpandroidchart

亲爱的社区,我面临以下问题,我正在使用此处提供的 MP android 图表库创建条形图:https://github.com/PhilJay/MPAndroidChart .

我想为我的条设置渐变背景,使用以下代码我能够设置渐变背景并获得以下结果。

val barDataSet = BarDataSet(dummyYValues, "DataSet 1")
barDataSet.axisDependency = YAxis.AxisDependency.RIGHT

val startColor = ContextCompat.getColor(context!!, R.color.top_graph)
val endColor = ContextCompat.getColor(context!!, R.color.bottom_graph)

val gradientColors: MutableList<GradientColor> = ArrayList()
gradientColors.add(GradientColor(endColor, startColor))

barDataSet.gradientColors = gradientColors
dataSets.add(barDataSet)
val finalData = BarData(dataSets)
finalData.barWidth =(0.3f)

current result

我正在尝试归档类似以下示例的内容 Expected behavior

如果您看到主要区别在于以统一方式显示渐变颜色的预期行为,则意味着它根据图表而不是根据值显示颜色。

此外,如果有人知道如何在栏的顶部添加圆角,那也会有所帮助。 谢谢。

最佳答案

我不知道最好的解决方案,但我将 BarChart 渲染器类复制为:

public class RoundedBarChartRenderer extends BarLineScatterCandleBubbleRenderer{
    protected void drawDataSet(Canvas c, IBarDataSet dataSet, int index) {

    //Use this to replace the line c.drawRect(.....)
    RectF rectF = new RectF(buffer.buffer[j], buffer.buffer[j + 1], buffer.buffer[j + 2],
        buffer.buffer[j + 3]);
    c.drawRoundRect(rectF,15f,15f, mRenderPaint);
}}

像这样使用上面的类:

chart.renderer = RoundedBarChartRenderer(
    chart,
    chart.animator,
    chart.viewPortHandler
)

关于android - Mp android图表,带条形渐变背景的条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60213458/

相关文章:

java - 在 MPAndroidChart 中自定义 Legend

java - 获取折线图入口标签 MPAndroidChart

android - MPAndroidChart 折线图小尺寸

android - Android 中的锁屏可加快游戏速度

android - 与 Robolectric 一起运行时 Mockito 测试中的 SecurityProvider

java - 在 Android 应用程序上登录和注册时遇到问题

android - 如何从 MpAndroidChart 中删除饼图上的多余空格?

android - 获取在 RecycleView 中选中的 ContextMenu 的位置

android - 使用 Android 蓝牙 API 的 Samsung Galaxy Tab 中的蓝牙检测问题

android - 如何在 mpandroidchart 中设置条形图的最大缩放级别?