• 第二阶段冲刺(五)


    昨天学习了绘制饼状图

    遇到的困难是点击不同的模块中间的标题 无法获得相对应的数值

    今天准备学习如何实现底部导航栏

     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);  //设置动画
        }
  • 相关阅读:
    网易163邮箱被盗号找回经历
    C++中基类的析构函数为什么要用virtual虚析构函数
    像linux ls命令一样优雅地打印
    【Linux】- 六个超赞的字符画生成器
    linux欢迎界面 /etc/motd
    Linux 的 FIGlet 指令产生 ASCII Art 大型文字教学
    趣玩 Linux:四个生成字符图案(字符画)的命令
    案例参考手册-第四章 Curses字符界面.docx
    读取键盘输入流改为原始模式
    centos 7配置系统调度isolcpus(软中断绑定)
  • 原文地址:https://www.cnblogs.com/lq13035130506/p/11003254.html
Copyright © 2020-2023  润新知