您的位置:首页 > 其它

GeooyMenu 设置一开始不显示

2015-11-06 11:39 239 查看
这是开源代码链接

GeooyMenu

简单说下,这个菜单的所实现的效果.就是点击一个按钮会弹出多个子按钮的这么一个动画效果.

在不修改代码的前提下,界面一进去,子菜单就已经显示出来了.



想要的效果是,一开始不显示子菜单,点击后才显示.

源码:

protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
for (int i = 0; i < mNumberOfMenu; i++) {
CirclePoint circlePoint = mMenuPoints.get(i);
float x = (float) (circlePoint.radius * Math.cos(circlePoint.angle));
float y = (float) (circlePoint.radius * Math.sin(circlePoint.angle));
canvas.drawCircle(x + mCenterX, mCenterY - y, mMenuButtonRadius, mCirclePaint);
if (i < mDrawableArray.size()) {
canvas.save();
canvas.translate(x + mCenterX - mMenuButtonRadius / 2, mCenterY - y - mMenuButtonRadius / 2);
//canvas.translate(x , y);
mDrawableArray.get(i).draw(canvas);  //将drawable画到小圆中
canvas.restore();
}
}
canvas.save();
canvas.translate(mCenterX, mCenterY);
Path path = createPath();
canvas.drawPath(path, mCirclePaint);
canvas.drawPath(path, mCircleBorder);
canvas.rotate(mRotationAngle);
canvas.drawBitmap(mPlusBitmap, -mPlusBitmap.getWidth() / 2, -mPlusBitmap.getHeight() / 2, mCirclePaint);
canvas.restore();
}


在onDraw方法中,打印circlePoint.radius是一直在变化的.当你关闭的时候radius等于0.所以就去找在哪里设置了这个radius.

/*
在onSizeChanged方法中,看到这行代码.
mGab表示子菜单之间的距离,也就是你在xml文件中设置的app:gap_between_menu_fab
*/
circlePoint.setRadius(mGab);
//所以想一开始不显示在菜单,注释掉这句话.再一开始的时候,不要让view画出子菜单项


最后把private boolean isMenuVisible = true;修改成false

纯属个人看法!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: