CombinedChart:是否可以将 LinearGradient 应用于 CombinedChart 中的线条?
CombinedChart: is it possible to apply LinearGradient to a line within a CombinedChart?
我想将 LinearGradient 应用于下图中的绿线。
CombinedChart
如下所示,将 LinearGradient 应用于 LineChart 很简单,但此方法不适用于 CombinedChart。
val gradient = LinearGradient(
0f, 500F, 0f, 0f,
ContextCompat.getColor(context, R.color.red),
ContextCompat.getColor(context, R.color.blue),
Shader.TileMode.CLAMP
)
binding.lineChart.renderer.paintRender.shader = gradient
非常感谢任何帮助。
我遇到过类似的问题,我的解决方案是使用像这样的特殊设置方法为组合图表渲染器创建自定义渲染器:
class CustomRenderer(private val chart: CombinedChart) : CombinedChartRenderer(chart, chart.animator, chart.viewPortHandler) {
fun setup() {
mRenderers.forEach { renderer ->
if (renderer is LineChartRenderer) {
chart.lineData.dataSets.forEach { dataSet ->
setLineGradient(dataSet, renderer) // apply your gradient here
}
}
}
}
}
您可以在 chart
范围内像这样应用此渲染器:
yourChart.apply {
val customRenderer = CustomRenderer(this)
renderer = customRenderer
}
完成向数据集添加数据后调用设置方法:
customRenderer.setup()
我想将 LinearGradient 应用于下图中的绿线。 CombinedChart
如下所示,将 LinearGradient 应用于 LineChart 很简单,但此方法不适用于 CombinedChart。
val gradient = LinearGradient(
0f, 500F, 0f, 0f,
ContextCompat.getColor(context, R.color.red),
ContextCompat.getColor(context, R.color.blue),
Shader.TileMode.CLAMP
)
binding.lineChart.renderer.paintRender.shader = gradient
非常感谢任何帮助。
我遇到过类似的问题,我的解决方案是使用像这样的特殊设置方法为组合图表渲染器创建自定义渲染器:
class CustomRenderer(private val chart: CombinedChart) : CombinedChartRenderer(chart, chart.animator, chart.viewPortHandler) {
fun setup() {
mRenderers.forEach { renderer ->
if (renderer is LineChartRenderer) {
chart.lineData.dataSets.forEach { dataSet ->
setLineGradient(dataSet, renderer) // apply your gradient here
}
}
}
}
}
您可以在 chart
范围内像这样应用此渲染器:
yourChart.apply {
val customRenderer = CustomRenderer(this)
renderer = customRenderer
}
完成向数据集添加数据后调用设置方法:
customRenderer.setup()