今天来记录一下PieChart(饼图)的详细美化!
注:本人使用的版本是MPAndroidChart-v3.0.3(如若版本不同有某些方法更新,可在评论区留言,尽我所能帮你解决!)
MPAndroidChart的详细使用——LineChart折线图(一)(简单使用)
MPAndroidChart的详细使用——LineChart折线图(二)(详细美化)
MPAndroidChart的详细使用——BarChart条形图(二)(详细美化)
MPAndroidChart的详细使用——BarChart条形图组(三)(条形图组)
MPAndroidChart的详细使用——BarChart叠状条形图(四)(堆叠柱状图)
MPAndroidChart的详细使用——HorizontalBarChart横向条形图(五)(横向条形图)
MPAndroidChart的详细使用——PieChart饼图(一)(简单使用)
MPAndroidChart的详细使用——RadarChart雷达图(一)(简单使用)
MPAndroidChart的详细使用——RadarChart雷达图(二)(详细美化)
效果图(有动画)
根据设置中心圆半径的大小可以把饼图做成圆环状或者纯圆状,这边只演示圆环,因为纯圆对中间字体等操作就会显得毕竟突兀~
XML
<com.github.mikephil.charting.charts.PieChart
android:id="@+id/pie"
android:layout_width="match_parent"
android:layout_height="300dp">
</com.github.mikephil.charting.charts.PieChart>
Java
public class PieChartMaxActivity extends AppCompatActivity {
private PieChart pie;
List<PieEntry> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pie_chart_max);
pie = (PieChart) findViewById(R.id.pie);
list=new ArrayList<>();
list.add(new PieEntry(56,"男性"));
list.add(new PieEntry(44,"女性"));
PieDataSet pieDataSet=new PieDataSet(list,"");
PieData pieData=new PieData(pieDataSet);
pie.setData(pieData);
pie.setBackgroundColor(Color.GRAY);
//设置各个数据的颜色
pieDataSet.setColors(Color.RED,Color.BLUE);
//实体扇形的空心圆的半径 设置成0时就是一个圆 而不是一个环
pie.setHoleRadius(30);
//中间半透明白色圆的半径 设置成0时就是隐藏
pie.setTransparentCircleRadius(30);
//设置中心圆的颜色
pie.setHoleColor(Color.CYAN);
//设置中心部分的字 (一般中间白色圆不隐藏的情况下才设置)
pie.setCenterText("男女比例");
//设置中心字的字体颜色
pie.setCenterTextColor(Color.RED);
//设置中心字的字体大小
pie.setCenterTextSize(16);
//设置描述的字体大小(图中的 男性 女性)
pie.setEntryLabelTextSize(20);
//设置数据的字体大小 (图中的 44 56)
pieDataSet.setValueTextSize(20);
//设置描述的位置
pieDataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
pieDataSet.setValueLinePart1Length(0.6f);//设置描述连接线长度
//设置数据的位置
pieDataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
pieDataSet.setValueLinePart2Length(0.6f);//设置数据连接线长度
//设置两根连接线的颜色
pieDataSet.setValueLineColor(Color.WHITE);
//对于右下角一串字母的操作
pie.getDescription().setEnabled(false); //是否显示右下角描述
pie.getDescription().setText("这是修改那串英文的方法"); //修改右下角字母的显示
pie.getDescription().setTextSize(20); //字体大小
pie.getDescription().setTextColor(Color.RED); //字体颜色
//图例
Legend legend=pie.getLegend();
legend.setEnabled(true); //是否显示图例
legend.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER); //图例的位置
//数据更新
pie.notifyDataSetChanged();
pie.invalidate();
//动画(如果使用了动画可以则省去更新数据的那一步)
pie.animateY(3000); //在Y轴的动画 参数是动画执行时间 毫秒为单位
// line.animateX(2000); //X轴动画
// line.animateXY(2000,2000);//XY两轴混合动画
}
}