MPAndroidChart—— pieChart 属性详解

MPAndroidChart GitHub 地址:https://github.com/PhilJay/MPAndroidChart

pieChart 常用属性详解:


[java] view plain copy
print ?
  1. // 设置 pieChart 图表基本属性  
  2. mChart.setUsePercentValues(false);            //使用百分比显示  
  3. mChart.getDescription().setEnabled(false);    //设置pieChart图表的描述  
  4. mChart.setBackgroundColor(Color.YELLOW);      //设置pieChart图表背景色  
  5. mChart.setExtraOffsets(5106010);        //设置pieChart图表上下左右的偏移,类似于外边距  
  6. mChart.setDragDecelerationFrictionCoef(0.95f);//设置pieChart图表转动阻力摩擦系数[0,1]  
  7. mChart.setRotationAngle(0);                   //设置pieChart图表起始角度  
  8. mChart.setRotationEnabled(true);              //设置pieChart图表是否可以手动旋转  
  9. mChart.setHighlightPerTapEnabled(true);       //设置piecahrt图表点击Item高亮是否可用  
  10. mChart.animateY(1400, Easing.EasingOption.EaseInOutQuad);// 设置pieChart图表展示动画效果  
  11.   
  12. // 设置 pieChart 图表Item文本属性  
  13. mChart.setDrawEntryLabels(true);              //设置pieChart是否只显示饼图上百分比不显示文字(true:下面属性才有效果)  
  14. mChart.setEntryLabelColor(Color.WHITE);       //设置pieChart图表文本字体颜色  
  15. mChart.setEntryLabelTypeface(mTfRegular);     //设置pieChart图表文本字体样式  
  16. mChart.setEntryLabelTextSize(10f);            //设置pieChart图表文本字体大小  
  17.   
  18. // 设置 pieChart 内部圆环属性  
  19. mChart.setDrawHoleEnabled(true);              //是否显示PieChart内部圆环(true:下面属性才有意义)  
  20. mChart.setHoleRadius(28f);                    //设置PieChart内部圆的半径(这里设置28.0f)  
  21. mChart.setTransparentCircleRadius(31f);       //设置PieChart内部透明圆的半径(这里设置31.0f)  
  22. mChart.setTransparentCircleColor(Color.BLACK);//设置PieChart内部透明圆与内部圆间距(31f-28f)填充颜色  
  23. mChart.setTransparentCircleAlpha(50);         //设置PieChart内部透明圆与内部圆间距(31f-28f)透明度[0~255]数值越小越透明  
  24. mChart.setHoleColor(Color.WHITE);             //设置PieChart内部圆的颜色  
  25. mChart.setDrawCenterText(true);               //是否绘制PieChart内部中心文本(true:下面属性才有意义)  
  26. mChart.setCenterTextTypeface(mTfLight);       //设置PieChart内部圆文字的字体样式  
  27. mChart.setCenterText("Test");                 //设置PieChart内部圆文字的内容  
  28. mChart.setCenterTextSize(10f);                //设置PieChart内部圆文字的大小  
  29. mChart.setCenterTextColor(Color.RED);         //设置PieChart内部圆文字的颜色  
  30.   
  31. // pieChart添加数据  
  32. setData();  
  33.   
  34. // 获取pieCahrt图列  
  35. Legend l = mChart.getLegend();  
  36. l.setEnabled(true);                    //是否启用图列(true:下面属性才有意义)  
  37. l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);    
  38. l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT);  
  39. l.setOrientation(Legend.LegendOrientation.VERTICAL);  
  40. l.setForm(Legend.LegendForm.DEFAULT); //设置图例的形状  
  41. l.setFormSize(10);                    //设置图例的大小  
  42. l.setFormToTextSpace(10f);            //设置每个图例实体中标签和形状之间的间距  
  43. l.setDrawInside(false);  
  44. l.setWordWrapEnabled(true);           //设置图列换行(注意使用影响性能,仅适用legend位于图表下面)  
  45. l.setXEntrySpace(10f);                //设置图例实体之间延X轴的间距(setOrientation = HORIZONTAL有效)  
  46. l.setYEntrySpace(8f);                 //设置图例实体之间延Y轴的间距(setOrientation = VERTICAL 有效)  
  47. l.setYOffset(0f);                     //设置比例块Y轴偏移量  
  48. l.setTextSize(14f);                   //设置图例标签文本的大小  
  49. l.setTextColor(Color.parseColor("#ff9933"));//设置图例标签文本的颜色  
  50.   
  51. //pieChart 选择监听  
  52. mChart.setOnChartValueSelectedListener(this);  
  53.   
  54. //设置MARKERVIEW  
  55. CustomMarkerView mv = new CustomMarkerView(thisnew PercentFormatter());  
  56. mv.setChartView(mChart);  
  57. mChart.setMarker(mv);  
  58.   
  59. /** 
  60.   * 设置饼图的数据 
  61.   */  
  62. private void setData() {  
  63.     ArrayList pieEntryList = new ArrayList();  
  64.     ArrayList colors = new ArrayList();  
  65.     colors.add(Color.parseColor("#f17548"));  
  66.     colors.add(Color.parseColor("#FF9933"));  
  67.     //饼图实体 PieEntry  
  68.     PieEntry CashBalance = new PieEntry(70"现金余额 1500");  
  69.     PieEntry ConsumptionBalance = new PieEntry(30"消费余额 768");  
  70.     pieEntryList.add(CashBalance);  
  71.     pieEntryList.add(ConsumptionBalance);  
  72.     //饼状图数据集 PieDataSet  
  73.     PieDataSet pieDataSet = new PieDataSet(pieEntryList, "资产总览");  
  74.     pieDataSet.setSliceSpace(3f);           //设置饼状Item之间的间隙  
  75.     pieDataSet.setSelectionShift(10f);      //设置饼状Item被选中时变化的距离  
  76.     pieDataSet.setColors(colors);           //为DataSet中的数据匹配上颜色集(饼图Item颜色)  
  77.     //最终数据 PieData  
  78.     PieData pieData = new PieData(pieDataSet);  
  79.     pieData.setDrawValues(true);            //设置是否显示数据实体(百分比,true:以下属性才有意义)  
  80.     pieData.setValueTextColor(Color.BLUE);  //设置所有DataSet内数据实体(百分比)的文本颜色  
  81.     pieData.setValueTextSize(12f);          //设置所有DataSet内数据实体(百分比)的文本字体大小  
  82.     pieData.setValueTypeface(mTfLight);     //设置所有DataSet内数据实体(百分比)的文本字体样式  
  83.     pieData.setValueFormatter(new PercentFormatter());//设置所有DataSet内数据实体(百分比)的文本字体格式  
  84.     mChart.setData(pieData);  
  85.     mChart.highlightValues(null);  
  86.     mChart.invalidate();                    //将图表重绘以显示设置的属性和数据  
  87. }  
// 设置 pieChart 图表基本属性
mChart.setUsePercentValues(false);            //使用百分比显示
mChart.getDescription().setEnabled(false);    //设置pieChart图表的描述
mChart.setBackgroundColor(Color.YELLOW);      //设置pieChart图表背景色
mChart.setExtraOffsets(5, 10, 60, 10);        //设置pieChart图表上下左右的偏移,类似于外边距
mChart.setDragDecelerationFrictionCoef(0.95f);//设置pieChart图表转动阻力摩擦系数[0,1]
mChart.setRotationAngle(0);                   //设置pieChart图表起始角度
mChart.setRotationEnabled(true);              //设置pieChart图表是否可以手动旋转
mChart.setHighlightPerTapEnabled(true);       //设置piecahrt图表点击Item高亮是否可用
mChart.animateY(1400, Easing.EasingOption.EaseInOutQuad);// 设置pieChart图表展示动画效果

// 设置 pieChart 图表Item文本属性
mChart.setDrawEntryLabels(true);              //设置pieChart是否只显示饼图上百分比不显示文字(true:下面属性才有效果)
mChart.setEntryLabelColor(Color.WHITE);       //设置pieChart图表文本字体颜色
mChart.setEntryLabelTypeface(mTfRegular);     //设置pieChart图表文本字体样式
mChart.setEntryLabelTextSize(10f);            //设置pieChart图表文本字体大小

// 设置 pieChart 内部圆环属性
mChart.setDrawHoleEnabled(true);              //是否显示PieChart内部圆环(true:下面属性才有意义)
mChart.setHoleRadius(28f);                    //设置PieChart内部圆的半径(这里设置28.0f)
mChart.setTransparentCircleRadius(31f);       //设置PieChart内部透明圆的半径(这里设置31.0f)
mChart.setTransparentCircleColor(Color.BLACK);//设置PieChart内部透明圆与内部圆间距(31f-28f)填充颜色
mChart.setTransparentCircleAlpha(50);         //设置PieChart内部透明圆与内部圆间距(31f-28f)透明度[0~255]数值越小越透明
mChart.setHoleColor(Color.WHITE);             //设置PieChart内部圆的颜色
mChart.setDrawCenterText(true);               //是否绘制PieChart内部中心文本(true:下面属性才有意义)
mChart.setCenterTextTypeface(mTfLight);       //设置PieChart内部圆文字的字体样式
mChart.setCenterText("Test");                 //设置PieChart内部圆文字的内容
mChart.setCenterTextSize(10f);                //设置PieChart内部圆文字的大小
mChart.setCenterTextColor(Color.RED);         //设置PieChart内部圆文字的颜色

// pieChart添加数据
setData();

// 获取pieCahrt图列
Legend l = mChart.getLegend();
l.setEnabled(true);                    //是否启用图列(true:下面属性才有意义)
l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);  
l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT);
l.setOrientation(Legend.LegendOrientation.VERTICAL);
l.setForm(Legend.LegendForm.DEFAULT); //设置图例的形状
l.setFormSize(10);					  //设置图例的大小
l.setFormToTextSpace(10f);			  //设置每个图例实体中标签和形状之间的间距
l.setDrawInside(false);
l.setWordWrapEnabled(true);			  //设置图列换行(注意使用影响性能,仅适用legend位于图表下面)
l.setXEntrySpace(10f);				  //设置图例实体之间延X轴的间距(setOrientation = HORIZONTAL有效)
l.setYEntrySpace(8f);				  //设置图例实体之间延Y轴的间距(setOrientation = VERTICAL 有效)
l.setYOffset(0f);					  //设置比例块Y轴偏移量
l.setTextSize(14f);					  //设置图例标签文本的大小
l.setTextColor(Color.parseColor("#ff9933"));//设置图例标签文本的颜色

//pieChart 选择监听
mChart.setOnChartValueSelectedListener(this);

//设置MARKERVIEW
CustomMarkerView mv = new CustomMarkerView(this, new PercentFormatter());
mv.setChartView(mChart);
mChart.setMarker(mv);

/**
  * 设置饼图的数据
  */
private void setData() {
	ArrayList pieEntryList = new ArrayList();
	ArrayList colors = new ArrayList();
	colors.add(Color.parseColor("#f17548"));
	colors.add(Color.parseColor("#FF9933"));
	//饼图实体 PieEntry
	PieEntry CashBalance = new PieEntry(70, "现金余额 1500");
	PieEntry ConsumptionBalance = new PieEntry(30, "消费余额 768");
	pieEntryList.add(CashBalance);
	pieEntryList.add(ConsumptionBalance);
	//饼状图数据集 PieDataSet
	PieDataSet pieDataSet = new PieDataSet(pieEntryList, "资产总览");
	pieDataSet.setSliceSpace(3f);           //设置饼状Item之间的间隙
	pieDataSet.setSelectionShift(10f);      //设置饼状Item被选中时变化的距离
	pieDataSet.setColors(colors);           //为DataSet中的数据匹配上颜色集(饼图Item颜色)
	//最终数据 PieData
	PieData pieData = new PieData(pieDataSet);
	pieData.setDrawValues(true);            //设置是否显示数据实体(百分比,true:以下属性才有意义)
	pieData.setValueTextColor(Color.BLUE);  //设置所有DataSet内数据实体(百分比)的文本颜色
	pieData.setValueTextSize(12f);          //设置所有DataSet内数据实体(百分比)的文本字体大小
	pieData.setValueTypeface(mTfLight);     //设置所有DataSet内数据实体(百分比)的文本字体样式
	pieData.setValueFormatter(new PercentFormatter());//设置所有DataSet内数据实体(百分比)的文本字体格式
	mChart.setData(pieData);
	mChart.highlightValues(null);
	mChart.invalidate();                    //将图表重绘以显示设置的属性和数据
}


使用参照:
http://blog.csdn.net/column/details/13579.html
http://blog.csdn.net/u014136472/article/category/6020813

[java] view plain copy
print ?
  1. "2047840" snippet_file_name="blog_20161213_1_8049102" style="background-color: rgb(255, 255, 255); font-family: Consolas;">"2047840" snippet_file_name="blog_20161213_1_8049102">  
  2.   
  3.   
  4.   
  5.   
  6.   
  7.   
  8.   
  9.      
  10.   











你可能感兴趣的:(图表类)