MPandroidchart库中如何使用图标作为饼图的标签

How to use icons as the labels of piechart in MPandroidchart library

我正在使用 mpandroidchart 库构建饼图。饼图的要求是每个条目都要有图标。

在我的例子中,它显示了每个条目值的百分比。

有什么办法可以把标签改成图标吗?

我的片段class

public class MonitorOverallFragment extends Fragment {
    private int[] CHART_COLORS = {Color.rgb(253,151,39), Color.rgb(103,63,180), Color.rgb(204,217,72), Color.rgb(44,152,240)};
    private Context mContext;
    private Activity mActivity;
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        mContext = context;
        icons1 = new Bitmap[]{BitmapFactory.decodeResource(mContext.getResources(),
                R.drawable.ic_card_analitics_white),
                BitmapFactory.decodeResource(mContext.getResources(),
                        R.drawable.ic_kredit_analitics_white),
                BitmapFactory.decodeResource(mContext.getResources(),
                        R.drawable.ic_vklad_analitics_white),
                BitmapFactory.decodeResource(mContext.getResources(),
                        R.drawable.ic_nps_analitics_white)};
    }

    public MonitorOverallFragment(){

    }

    int [] sampledata = {30, 40, 20, 10};

        Bitmap[] icons1;

    private String icons[] = {"a", "b", "c", "d"};



    @Override
    public View onCreateView(LayoutInflater inflater,  ViewGroup container,  Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_monitor_overall, container, false);

        setUpPieChart(rootView);
        return  rootView;
    }
    private void setUpPieChart(View v){
        List<PieEntry> pieEntries = new ArrayList<>();
        for(int i = 0; i<sampledata.length; i++){
            pieEntries.add(new PieEntry(sampledata[i], icons1[i]));
        }
        PieDataSet dataSet = new PieDataSet(pieEntries, "");
        dataSet.setColors(CHART_COLORS);
        PieData data = new PieData(dataSet);

        PieChart chart = (PieChart)v.findViewById(R.id.pie_monitor_overall);
        chart.setData(data);
        chart.setDrawEntryLabels(true);

        Description description = new Description();
        description.setText("");
        chart.setDescription(description);

        chart.invalidate();

    }
}

这是我的代码示例:

Drawable user_icon = getDrawable(R.drawable.user);
myData = new ArrayList<>();
myData.add(new PieEntry(46, user_icon));
PieDataSet dataSet = new PieDataSet(myData, "");
PieData data = new PieData(dataSet);
pieChart.setData(data);

(我知道解释得不好,但既然你问的是图标,那么你已经完成了库的简单实现)

请注意,我使用的是3.0.2版本,之前的版本可能没有这个功能。