2017-02-14 6 views
1

しかし私は、.getColors()と.getLabels()が廃止されているMPAndroidChartで円グラフのカスタム凡例を表示しています。MPAndroidChart:getColors()は現在、 '伝説' のため推奨されません。代わりに私は何を使うべきですか?

私はそれぞれint配列や文字列の配列を取得するためにそれらを使用してきたが、私は直接の代替を見つけるように見えることはできません。私は明白な何かを欠いていますか代わりに私は今何を使うべきですか?ありがとう!

Legend legend = mChart.getLegend(); 
legend.setEnabled(false); 

if (legend.getColors() != null) { 

    int colorCodes[] = legend.getColors(); 
    String labels[] = legend.getLabels(); 

    ArrayList<LegendItem> legendItems = new ArrayList<>(); 

    for (int i = 0; i < legend.getColors().length-1; i++) { 
     legendItems.add(new LegendItem(colorCodes[i], labels[i])); 
    } 

    showLegend(legendItems); 

    // entry label styling 
    mChart.setDrawEntryLabels(false); 

} 

答えて

2

Legendクラスは今より良いOOPの慣行に従い、LegendEntryの配列で構成されています。それぞれを繰り返し、必要に応じて色やラベルを抽出することができます。

private int [] getColors(Legend legend) { 
    LegendEntry [] legendEntries = legend.getEntries(); 
    int [] colors = new int[legendEntries.length]; 
    for (int i = 0; i < legendEntries.length; i++) { 
     colors[i] = legendEntries[i].formColor; 
    } 
    return colors; 
} 

private String [] getLabels(Legend legend) { 
    LegendEntry [] legendEntries = legend.getEntries(); 
    String [] labels = new String[legendEntries.length]; 
    for (int i = 0; i < legendEntries.length; i++) { 
     labels[i] = legendEntries[i].label; 
    } 
    return labels; 
} 
+0

私が探していたものです。ありがとう! – edant92

関連する問題