MPAndroidChart fill color gradient

前端 未结 3 1782
失恋的感觉
失恋的感觉 2020-12-15 09:44

Is it possible with MPAndroidChart (or any other Android chart library) to fill the chart under the draw line with a gradient color? Something like this:

set         


        
相关标签:
3条回答
  • 2020-12-15 10:14

    Okay i have found a solution:

    William Chart and i am using this method:

    int[] colors = { getResources().getColor(R.color.menu_text),
     getResources().getColor(android.R.color.white) };
    
    float[] index = { 0, 1 };
    dataset.setGradientFill(colors, index);
    
    0 讨论(0)
  • 2020-12-15 10:19

    You can use the following two methods:

    LineRadarDataSet#setDrawFilled(boolean isFilled); 
    LineRadarDataSet#setFillDrawable(Drawable d);
    

    Here's a link to the javadoc for that class.

    This is the example from the MPAndroidChart sample project:

    set1.setDrawFilled(true);
    if (Utils.getSDKInt() >= 18) {
        // fill drawable only supported on api level 18 and above
        Drawable drawable = ContextCompat.getDrawable(this, R.drawable.fade_red);
        set1.setFillDrawable(drawable);
    }
    else {
        set1.setFillColor(Color.BLACK);
    }
    

    In fade_red.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient
            android:angle="90"
            android:startColor="#00ff0000"
            android:endColor="#ffff0000" />
    </shape>
    

    Here's a sample of what it looks like on a LineChart:

    0 讨论(0)
  • 2020-12-15 10:22

    Kotlin Solution:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
        lineDataSet.setDrawFilled(true)
        val fillGradient = ContextCompat.getDrawable(requireContext(), R.drawable.red_gradient)
        lineDataSet.fillDrawable = fillGradient
    }
    

    Here is the red_gradient.xml file:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <gradient
            android:angle="90"
            android:startColor="#00F81616"
            android:endColor="#ffF81616" />
    </shape>
    
    0 讨论(0)
提交回复
热议问题