本人学习android uiautomator中,在验证可转动控件的时候写了一个以坐标点和半径为参数画圆的代码,经过尝试已经写成了一个带参数的方法,分享出来仅供大家参考。
public void circle(int x, int y, int r) {
double d = (double) (Math.PI/30);//角度double[] xxx = new double[61];
for(int i=0;i<61;i++){
xxx[i]=Math.cos(i*d);
}
//获取x坐标
double[] yyy = new double[61];
for(int i=1;i<61;i++){
yyy[i]=Math.sin(i*d);
}
//获取y坐标
int[] xxx1 = new int[61];
for(int i=0;i<61;i++){
xxx1[i]=(int) (xxx[i]*200);
}
//转化坐标值类型
int[] yyy1 = new int[61];
for(int i=0;i<61;i++){
yyy1[i]=(int) (yyy[i]*200);
}
//转化坐标值类型
Point[] p = new Point[61];
for(int i=0;i<61;i++){
p[i]=new Point();
p[i].x = xxx1[i]+x;
p[i].y = y-yyy1[i]+50;
}
//建立点数组
getUiDevice().swipe(p, 2);
}
x、y表示圆心坐标,r表示圆半径。
中间转化坐标值的一步可以写在p[i].x = (int) (xxx1[i]*r)+x;我刚开始是怕出错所以都是一步步来的。