d class="lines-num lines-num-old"> 532
return POSITION_BOTTOM_CENTER;
}else if (isUp) {
if(isRight){
return POSITION_TOP_RIGHT;
}else if (isLeft) {
return POSITION_TOP_LEFT;
}
return POSITION_TOP_CENTER;
}else if (isRight) {
return POSITION_RIGHT_CENTER;
}else if (isLeft) {
return POSITION_LEFT_CENTER;
}
// if(!isLeft && !isRight && !isUp && !isBottom){
return POSITION_CENTER;
// }
}
/**
* 偏移量计算
*/
private int[] computOffset(int position,int i){
int toX = 0,toY =0 ;
radius = buttonRadius * 2;
if(position != 0 && position % 2 == 0){//当position为扇形,打开时初始半径变大1.5倍;
radius *= 1.5;
}
switch (position) {
case POSITION_CENTER:
setCircle(1);
toX =(int)(radius*Math.sin(i*angle));
toY =(int)(radius*Math.cos(i*angle));
break;
case POSITION_TOP_CENTER:
setCircle(0.5f);
toX = (int)(radius*Math.sin(i*angle + Math.PI/2));
toY = (int)(radius*Math.cos(i*angle + Math.PI/2));
break;
case POSITION_TOP_RIGHT:
setCircle(0.25f);
toX = (int)(radius*Math.sin(i*angle + Math.PI));
toY = (int)(radius*Math.cos(i*angle + Math.PI));
break;
case POSITION_RIGHT_CENTER:
setCircle(0.5f);
toX = (int)(radius*Math.sin(i*angle + Math.PI));
toY = (int)(radius*Math.cos(i*angle + Math.PI));
break;
case POSITION_BOTTOM_RIGHT:
setCircle(0.25f);
toX = (int)(radius*Math.sin(i*angle - Math.PI/2));
toY = (int)(radius*Math.cos(i*angle - Math.PI/2));
break;
case POSITION_BOTTOM_CENTER:
setCircle(0.5f);
toX = (int)(radius*Math.sin(i*angle - Math.PI/2));
toY = (int)(radius*Math.cos(i*angle - Math.PI/2));
break;
case POSITION_BOTTOM_LEFT:
setCircle(0.25f);
toX = (int)(radius*Math.sin(i*angle));
toY = (int)(radius*Math.cos(i*angle));
break;
case POSITION_LEFT_CENTER:
setCircle(0.5f);
toX = (int)(radius*Math.sin(i*angle));
toY = (int)(radius*Math.cos(i*angle));
break;
case POSITION_TOP_LEFT:
setCircle(0.25f);
toX = (int)(radius*Math.sin(i*angle + Math.PI/2));
toY = (int)(radius*Math.cos(i*angle + Math.PI/2));
break;
default:
break;
}
int [] xy = {toX,toY};
return xy;
}
public PathMenu setPosition(int position){
this.position = position;
return this;
}
}