首页 文章

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

提问于
浏览
2

我正在使用mpandroidchart库来构建饼图 . 饼图的要求是它应该在每个条目中包含图标 .

image1

在我的情况下,它显示每个条目值的百分比 .
image

有没有办法将标签更改为图标?

My Fragment 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();

    }
}

1 回答

  • 2

    这是我的代码中的示例:

    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);
    

    (我知道's not well explained but since you'重新询问图标然后你已经完成了库的简单实现)

    请注意,我使用的是3.0.2版本,此功能可能在以前的版本中没有出现过 .

相关问题