MPAndroidChart—— pieChart 属性详解

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

pieChart 常用属性详解:

 

// 设置 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<PieEntry> pieEntryList = new ArrayList<PieEntry>();
	ArrayList<Integer> colors = new ArrayList<Integer>();
	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

闲暇之余写了个小程序,欢迎大家扫码使用

 

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值