设置容器的半径,设置容器的默认大小,设置开始的角度,设置菜单的个数,记录上一次x,y的位置,在改方法中public MapModelLayout(Context context, AttributeSet attrs),计算具手机屏幕的顶部距离,计算容器的半径,
在onMeasure方法中根据设置的半径在乘以1 / 1f;计算出每个View的大小,并设置ViewGroup的模式MeasureSpec.EXACTLY
分别设置ViewGroup的每个View的大小并判断是否显示和隐藏如果是隐藏就持续执行
并设置并计算item的尺寸;以及和设置好的模式,去对item进行测量makeMeasureSpec = MeasureSpec.makeMeasureSpec(childSize, childMode);
并分别设置View的大小
在onLayout里面得到半径并且 angleDelayLeft = 360 / (showNum * 2);得到旋转的弧度
利用Math函数分别算出正玄和余弦根据默认的半径和开始的角度,肯据余弦函数算出左边的距离在根据正玄算出View与View之间的距离在根据dispatchTouchEvent判断根据XY坐标判断是顺时针还是逆时针,然后在onLayout里面判断先移除数据
if (centTop > centerLine - 50 && centTop < centerLine) {// 上边conTao为正玄函数和默认尺寸的大小和centerLine有默认的半径组成,并根据dispatchTouchEvent计算左右的距离
if (centTop < centerLine + 50 && centTop > centerLine) {// 同理得出判断下isRight为成员变量并根据childView.findViewById(R.id.layout_id);设置v.setScaleX((float) (1 + Math.pow(
Math.cos(Math.toRadians(startAngle)), num)));
v.setScaleY((float) (1 + Math.pow(
Math.cos(Math.toRadians(startAngle)), num)));
mum 为设置的5也是默认页面显示的个数