昨天学习了绘制饼状图
遇到的困难是点击不同的模块中间的标题 无法获得相对应的数值
今天准备学习如何实现底部导航栏
PieData mPieData = getPieData(4, 100); showChart(pieChart, mPieData); /** * * @param count 分成几部分 * @param range */ private PieData getPieData(int count, float range) { ArrayList<String> xValues = new ArrayList<String>(); //xVals用来表示每个饼块上的内容 xValues.add(0,"优"); xValues.add(1,"良"); xValues.add(2, "中"); xValues.add(3, "差"); ArrayList<Entry> yValues = new ArrayList<Entry>(); //yVals用来表示封装每个饼块的实际数据 // 饼图数据 //若想变成百分比需要设置pieChart.setUsePercentValues(true); float quarterly1 = 46; float quarterly2 = 18; float quarterly3 = 20; float quarterly4 = 15; //饼块数据 yValues.add(new Entry(quarterly1, 0)); yValues.add(new Entry(quarterly2, 1)); yValues.add(new Entry(quarterly3, 2)); yValues.add(new Entry(quarterly4, 3)); //y轴的集合 PieDataSet pieDataSet = new PieDataSet(yValues, "作业报告");//显示在比例图上 pieDataSet.setSliceSpace(1f); //设置各饼状图之间的距离 // 饼图颜色 ArrayList<Integer> colors = new ArrayList<Integer>(); colors.add(Color.parseColor("#b284f3")); colors.add(Color.parseColor("#fe7c2e")); colors.add(Color.parseColor("#7494d6")); colors.add(Color.parseColor("#42c0fa")); pieDataSet.setColors(colors); DisplayMetrics metrics = getResources().getDisplayMetrics(); float px = 2 * (metrics.densityDpi / 160f); pieDataSet.setSelectionShift(px); // 选中态多出的长度 PieData pieData = new PieData(xValues, pieDataSet); return pieData; } /**初始化并填充数据*/ private void showChart(PieChart pieChart, PieData pieData) { pieChart.setHoleColorTransparent(true); pieChart.setHoleRadius(60f); //半径 pieChart.setTransparentCircleRadius(64f); // 半透明圈 pieChart.setDrawCenterText(true); //饼状图中间可以添加文字 pieChart.setDrawHoleEnabled(true);//饼状图中心圆是否存在 pieChart.setCenterText("提交作业3次"); //饼状图中间的文字 pieChart.setCenterTextSize(10);//饼状图中间的文字的大小,但是没有该字体颜色的设置 pieChart.setValueTextSize(8);//饼图中的内容字体大小 pieChart.setRotationAngle(90); // 初始旋转角度 pieChart.setNoDataText("数据加载中..."); pieChart.setRotationEnabled(true); // 可以手动旋转 pieChart.setUsePercentValues(true); //显示成百分比 pieChart.setDrawXValues(true); pieChart.setDescription(null); //设置数据 pieChart.setData(pieData); pieChart.highlightValues(null); //设置数据汇总,比例图 Legend mLegend = pieChart.getLegend(); mLegend.setPosition(Legend.LegendPosition.RIGHT_OF_CHART_CENTER); //最右边显示 mLegend.setTextColor(getResources().getColor(R.color.dark_gray)); mLegend.setTextSize(10); mLegend.setXEntrySpace(8f); mLegend.setYEntrySpace(8f); pieChart.animateXY(1000, 1000); //设置动画 }