我调整了https://github.com/daCapricorn/ArcMenu库以使其符合我的目的,并且运行良好。无论如何我可以像在 tumblr 应用程序中那样构建菜单,还是可以通过调整 ArcMenu 项目或https://github.com/siyamed/android-satellite-menu来构建菜单?我对用于创建样式的数学函数有疑问。
我正在寻找类似于 tumblr 应用程序动画的动画。
我调整了https://github.com/daCapricorn/ArcMenu库以使其符合我的目的,并且运行良好。无论如何我可以像在 tumblr 应用程序中那样构建菜单,还是可以通过调整 ArcMenu 项目或https://github.com/siyamed/android-satellite-menu来构建菜单?我对用于创建样式的数学函数有疑问。
我正在寻找类似于 tumblr 应用程序动画的动画。
我在 iOS 中有很多方法可以做到这一点。在 iOS 中,我们有类似于 Android 的视图,我们可以指定坐标(视图框架)将它们放置在它们的超级视图中。
假设:
1)假设你有一个轨迹,即方程 x^2 + y^2 = c 的圆(提示:所有视图都在这个轨迹上,即所有视图的中心与这个圆重合)
2)您需要根据您需要的曲线和初始点(0,HEIGHT_OF_SCREEN)选择一个值C作为放置视图的说明点。
算法 :
int angularDisplacementBetweenEachView = 10; // 两个视图之间的距离(以弧度表示) // X 按钮在屏幕上的坐标 int startPositionOfViewX = 0; int startPositionOfViewY = HEIGHT_OF_SCREEN; // 常数决定曲线 诠释 C = 125;-(void) main (){ // 这通常在视图控制器中完成
for(int i = 1; i< menu_items.count; i++){ Rect position = getCoordinatesForView(menu_item.get(i),menu_item.get(i-1).rect.x,menu_item.get(i-1).rect.y); addView(menu_item.get(i),position.x,position.y); }
}
// 方法返回视图需要位于的坐标 (x,y) //放置。 -(Rect)getCoordinatesForView(View currentView, int prevViewX, int prevViewY){
// 转换为极坐标 // 参考图
// 这也是虚拟圆的半径 浮动 r = sqrt(pow(x,2),pow(y,2)); 浮动 theta = atan(y,x);
//r & theta 是上一个菜单项的极坐标 浮动 theta2 = (angularDisplacementBetweenEachView + r*theta)/r;
// 转换回笛卡尔坐标 int x2 = r * cos (theta); int y2 = r * sin (theta);
返回新的矩形(x2,y2); }
试试这个弧菜单。你可以使用这个卫星菜单 https://github.com/ketanpatel25/android-satellite-menu-center