浏览代码

修改判断扇形半径的逻辑位置

leijie 8 年之前
父节点
当前提交
d376d3392b
共有 1 个文件被更改,包括 12 次插入9 次删除
  1. 12 9
      ipupathmenu/src/com/ai/ipu/ipupathmenu/PathMenu.java

+ 12 - 9
ipupathmenu/src/com/ai/ipu/ipupathmenu/PathMenu.java

@ -342,9 +342,9 @@ public class PathMenu extends RelativeLayout{
342 342
	}
343 343
	
344 344
	public void openMenu(int position) {
345
		if(position != 0 && position % 2 == 0){//当position为扇形,打开时初始半径变大1.5倍;
346
			radius *= 1.5;
347
		}
345
//		if(position != 0 && position % 2 == 0){//当position为扇形,打开时初始半径变大1.5倍;
346
//			radius *= 1.5;
347
//		}
348 348
		
349 349
		int toX,toY;
350 350
		for(int i=0;i<buttons.length;i++){
@ -388,9 +388,9 @@ public class PathMenu extends RelativeLayout{
388 388
		isOpen = false;
389 389
		isCanDrag = true;
390 390
		
391
		if(position != 0 && position % 2 == 0){//当position为扇形,关闭时恢复初始半径;
392
			radius /= 1.5;
393
		}
391
//		if(position != 0 && position % 2 == 0){//当position为扇形,关闭时恢复初始半径;
392
//			radius /= 1.5;
393
//		}
394 394
	}
395 395
	
396 396
	/************************动画效果实现start***************************/
@ -549,9 +549,13 @@ public class PathMenu extends RelativeLayout{
549 549
	/**
550 550
	 * 偏移量计算
551 551
	 */
552
	private int[] computOffset(int shape,int i){
552
	private int[] computOffset(int position,int i){
553 553
		int toX = 0,toY =0 ;
554
		switch (shape) {
554
		radius = buttonRadius * 2;
555
		if(position != 0 && position % 2 == 0){//当position为扇形,打开时初始半径变大1.5倍;
556
			radius *= 1.5;
557
		}
558
		switch (position) {
555 559
		case POSITION_CENTER:
556 560
			setCircle(1);
557 561
			toX =(int)(radius*Math.sin(i*angle));
@ -571,7 +575,6 @@ public class PathMenu extends RelativeLayout{
571 575
			setCircle(0.5f);
572 576
			toX = (int)(radius*Math.sin(i*angle + Math.PI));
573 577
			toY = (int)(radius*Math.cos(i*angle + Math.PI));
574

575 578
			break;
576 579
		case POSITION_BOTTOM_RIGHT:
577 580
			setCircle(0.25f);