MPAndroidChart图例定制

前端之家收集整理的这篇文章主要介绍了MPAndroidChart图例定制前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 MPAndroidChart library.我想在MPAndroidChart中自定义图例.在MPAndroidChart库中,我试图设置图例的位置.通过给定代码legend.setPosition(LegendPosition.BELOW_CHART_CENTER)但无法执行此操作.我必须设置图例如下图所示

帮助将是欣赏

解决方法

请查找给定答案 MPAndroidChart – Legend labels are being cut off.我已经根据您的问题提供了答案.
寻找给定代码肯定会帮助你.
您必须按照以下步骤使用其图例颜色和标签实现自定义图例:

步骤1

  1. Legend legend = mChart.getLegend();

第2步

  1. int colorcodes[] = legend.Colors();

第3步

  1. for (int i = 0; i < legend.Colors().length-1; i++) {
  2. .....
  3. .....
  4. }

第4步

然后你必须采取水平或垂直的一个布局,并获得图例颜色代码和图例标签,并根据图例长度创建布局和标签.代码示例如下:

  1. LinearLayout.LayoutParams parms_left_layout = new LinearLayout.LayoutParams(
  2. LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
  3. parms_left_layout.weight = 1F;
  4. LinearLayout left_layout = new LinearLayout(context);
  5. left_layout.setOrientation(LinearLayout.HORIZONTAL);
  6. left_layout.setGravity(Gravity.CENTER);
  7. left_layout.setLayoutParams(parms_left_layout);
  8.  
  9. LinearLayout.LayoutParams parms_legen_layout = new LinearLayout.LayoutParams(
  10. 20,20);
  11. parms_legen_layout.setMargins(0,20,0);
  12. LinearLayout legend_layout = new LinearLayout(context);
  13. legend_layout.setLayoutParams(parms_legen_layout);
  14. legend_layout.setOrientation(LinearLayout.HORIZONTAL);
  15. legend_layout.setBackgroundColor(colorcodes[i]);
  16. left_layout.addView(legend_layout);
  17.  
  18. TextView txt_unit = new TextView(context);
  19. txt_unit.setText(legend.getLabel(i));
  20. left_layout.addView(txt_unit);
  21.  
  22. LinearLayout.LayoutParams parms_middle_layout = new LinearLayout.LayoutParams(
  23. LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
  24. parms_middle_layout.weight = 1F;
  25. LinearLayout middle_layout = new LinearLayout(this);
  26. middle_layout.setOrientation(LinearLayout.HORIZONTAL);
  27. middle_layout.setGravity(Gravity.CENTER);
  28. middle_layout.setLayoutParams(parms_middle_layout);
  29.  
  30. TextView txt_leads = new TextView(this);
  31. txt_leads.setText("450");
  32. middle_layout.addView(txt_leads);
  33.  
  34. LinearLayout.LayoutParams parms_right_layout = new LinearLayout.LayoutParams(
  35. LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
  36. parms_right_layout.weight = 1F;
  37. LinearLayout right_layout = new LinearLayout(this);
  38. right_layout.setOrientation(LinearLayout.HORIZONTAL);
  39. right_layout.setGravity(Gravity.CENTER);
  40. right_layout.setLayoutParams(parms_right_layout);
  41.  
  42. TextView txt_leads_percentage = new TextView(this);
  43. txt_leads_percentage.setText(munit_percentage_list.get(i) + "");
  44. right_layout.addView(txt_leads_percentage);
  45.  
  46. childlayout.addView(left_layout);
  47. childlayout.addView(middle_layout);
  48. childlayout.addView(right_layout);

然后将您(在运行时创建的子布局)添加到主布局.

猜你在找的Android相关文章