2015-10-02 6 views
2

Возможно ли с помощью MPAndroidChart (или любой другой библиотеки карт Android) заполнить диаграмму под линией рисования с градиентным цветом? Что-то вроде этого:MPAndroidChart fill color gradient

set1.setFillColor(getResources().getColor(R.drawable.chart_fill)); 

затем в chart_fill.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 

    <gradient 
     android:angle="90" 
     android:endColor="#FF207a54" 
     android:startColor="#FFffffff" /> 

</shape> 
+0

Любой обновить это? Включил ли MPAndroidChart функцию заливки градиента в любой из новых версий? – VladimirVip

+1

@VladimirVip, пожалуйста, проверьте мой ответ –

+0

@DavidRawson Большое спасибо, это отвечает на вопрос! – VladimirVip

ответ

2

Хорошо я нашел решение:

William Chart и я использую этот метод:

int[] colors = { getResources().getColor(R.color.menu_text), 
getResources().getColor(android.R.color.white) }; 

float[] index = { 0, 1 }; 
dataset.setGradientFill(colors, index); 
2

Вы можете использовать следующие два Методы:

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

Вот ссылка на javadoc для этого класса.

Это пример из 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); 
} 

В 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> 

Вот пример того, что он выглядит на LineChart:

a line chart with a red gradient fill