2017-02-14 36 views
1

我顯示自定義圖例在MPAndroidChart一個餅圖然而,.getColors(),現在.getLabels()已被棄用。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

相關問題