2015-04-22 23 views
7

Używam MPChartlib dla podstawowego "Barchart" (3 paski i wartości od 0 do 100).Jak ustawić kolory w MPAndroidChart?

tło aplikacji jest ciemne, więc chciałbym umieścić tekst na biało, ale kiedy ustawię tekst z kodem koloru "FFFFFF" w kolorze chart_color zapisanym w string.xml, ale tekst pojawi się w kolorze granatowym.

`//Axe X 
    XAxis x = barchart.getXAxis(); 
    x.setPosition(XAxisPosition.BOTTOM); 
    x.setTextColor(R.color.chart_color); 
    x.setAxisLineColor(R.color.chart_color); 


    // Design 
    barchart.setDragEnabled(false); 
    barchart.setDrawGridBackground(false); 
    barchart.setTouchEnabled(false); 
    barchart.setHighlightEnabled(false); 
    barchart.setMaxVisibleValueCount(101); 
    barchart.setDescription(null); 
    barchart.setGridBackgroundColor(R.color.chart_color); 

    barchart.invalidate(); // refresh 

    //Axe Y 
    barchart.getAxisLeft().setAxisMaxValue(100); 
    barchart.getAxisLeft().setDrawTopYLabelEntry(true); 
    barchart.getAxisLeft().setDrawAxisLine(false); 
    barchart.getAxisLeft().setDrawGridLines(false); 
    barchart.getAxisLeft().setAxisLineColor(R.color.chart_color); 
    barchart.getAxisLeft().setTextColor(R.color.chart_color); 

    barchart.getAxisRight().setAxisMaxValue(100); 
    barchart.getAxisRight().setDrawTopYLabelEntry(true); 
    barchart.getAxisRight().setAxisLineColor(R.color.chart_color); 
    barchart.getAxisRight().setTextColor(R.color.chart_color); ` 

Próbowałem wielu rzeczy i badań, ale nie mogłem znaleźć problemu, czy lib nie używa tego samego rodzaju kodu kolorów czy coś takiego?

Dzięki za pomoc, Alex

Odpowiedz

12

Jesteś przepuszczenie identyfikator zasobów do biblioteki, a nie rzeczywisty kolor.

Użyj tego, aby uzyskać kolor:

int color = getResources().getColor(R.color.chart_color); 
    something.setColor(color); 

można również znaleźć to w documentation.

+0

@Philipp Jahody ustawić kolor bar na podstawie wartości osi y, jest to możliwe przy użyciu MPAndroidChart? –

6

jeśli chcesz zmienić kolor bary wolą kontekst uchodzić za dobrze jak przykład poniżej

ArrayList<BarEntry> entries = new ArrayList<>(); 
     entries.add(new BarEntry(87f, 0)); 
     entries.add(new BarEntry(90f, 1)); 


     ArrayList<String> labels = new ArrayList<>(); 
     labels.add("title 1"); 
     labels.add("title 2); 

     BarDataSet dataSet = new BarDataSet(entries, "# of Calls "); 
     BarData barData = new BarData(labels, dataSet); 
     dataSet.setColors(new int[]{R.color.color1 , R.color.color2} , context); 
     barChart.setData(barData); 
     barChart.animateY(3000 , Easing.EasingOption.EaseOutBack); 
Powiązane problemy