MPAndroid条形图的渐变颜色

时间:2017-10-03 06:21:26

标签: android bar-chart gradient mpandroidchart

我想将自定义渐变用于MPAndroid条形图。我已经制作了我的自定义可绘制颜色如下:

<item android:id="@android:id/progress">
    <clip
        android:clipOrientation="vertical"
        android:gravity="bottom">
        <shape>
            <gradient
                android:startColor="#00AEEE"
                android:centerColor="#0086CA"
                android:endColor="#315AA6"
                android:angle="90" />
        </shape>
    </clip>
</item>

我尝试将其分配到我的条形图,如下所示: barDataSet.setColor(R.drawable.gradient_color); 另一个问题是我想显示0-10.9的右侧YAxis标签。但它会动态变化到接近最小值的点,我的意思是说,如果我的最小结果是6 den,它会跳过6以下的数字

enter image description here

但这不是我想要的。我希望我的结果如下: enter image description here

3 个答案:

答案 0 :(得分:2)

尝试以下可能足够接近的代码:

 Paint mPaint = barChart.getRenderer().getPaintRender(); mPaint.setShader(new   
  SweepGradient(350,120,Color.parseColor("#FFF212"),Color.parseColor("#FCE121")));

答案 1 :(得分:2)

尝试以下方法,您将获得更好的结果。

paint.setShader(new LinearGradient(0,0,0,10,new   int[]{Color.parseColor("#00AEEE"),Color.parseColor("#0086CA"),Color.parseColor("#315AA6")},new float[]{0,2,2}, Shader.TileMode.CLAMP));

答案 2 :(得分:1)

新版本支持渐变-

val barDataSet = BarDataSet(entries, "Days")
val startColor =
        ContextCompat.getColor(requireContext(), R.color.colorPrimary)
    val endColor = ContextCompat.getColor(requireContext(),  
                   R.color.colorPrimaryDark)
barDataSet.setGradientColor(startColor, endColor)

如果您想使用更多渐变,只需创建一个 GradientColor 列表并将其传递给 barDataSet.setGradientColors() 函数