test

来源:互联网 发布:java invoke 方法 编辑:程序博客网 时间:2024/06/05 16:17

Map<String, TreeNode> parentTreeNodeMap = new HashMap<String, TreeNode>();List<TreeNode> rootTreeNodes = new ArrayList();List<TreeNode> childNodes = new ArrayList();for (ITreeNode iTreeNode : sourceNode) {TreeNode treeNode = new TreeNode(iTreeNode);if (treeNode.isRoot()) {rootTreeNodes.add(treeNode);} else {childNodes.add(treeNode);}parentTreeNodeMap.put(treeNode.getId(), treeNode);}for (TreeNode treeNode : childNodes) {if (parentTreeNodeMap.containsKey(treeNode.getParentId())) {TreeNode parent = parentTreeNodeMap.get(treeNode.getParentId());parent.addChild(treeNode);}else{rootTreeNodes.add(treeNode);}}


private void drawPercent(Canvas canvas, PieData pieData, Point point,float deltaY){

        float x = point.getX();

        float y = point.getY();

        String msg = String.valueOf(pieData.getPercentStr());

        mPaint.setTextSize(mPercentTextSize);

        Path path = new Path();

        float size = msg.length() * mPaint.getTextSize();

        float startX;

        float destinyX;

        float destinyY;

        // x 的判断

        if (x < mCirclePoint.x){

            mPaint.setTextAlign(Paint.Align.RIGHT);

            startX = x - size;

            destinyX = x;

        } else {

            mPaint.setTextAlign(Paint.Align.LEFT);

            startX = x;

            destinyX = x + size;

        }

        // y 的判断

        if (y < mCirclePoint.y){

            destinyY = y - deltaY;

        } else {

            destinyY = y + mPercentTextSize + deltaY;

        }

        path.moveTo(startX,destinyY);

        path.lineTo(destinyX,destinyY);

//        canvas.drawLine(startX,destinyY,destinyX,destinyY,mPaint);

        canvas.drawTextOnPath(msg,path,0,0,mPaint);

    }

private void drawArc(Canvas canvas, PieData pieData){

        mPaint.setColor(pieData.getColor());

        canvas.drawArc(mRectF,(float) pieData.getStartAngle(), (float) pieData.getAngleOffset(),true,mPaint);

    }

0 0