Java Android Wear上的怪异渲染问题
我正在开发一款耐磨表面,我得到了非常不寻常的输出。有一个神秘的圆形区域,其中一些子视图未完全渲染。有趣的是,我从不在视图中添加圆 以下是输出的屏幕截图: 奇怪的是时钟指针输出得很好,它们首先被添加到视图中。下面是一段代码片段,它勾勒出了这条线:Java Android Wear上的怪异渲染问题,java,android,Java,Android,我正在开发一款耐磨表面,我得到了非常不寻常的输出。有一个神秘的圆形区域,其中一些子视图未完全渲染。有趣的是,我从不在视图中添加圆 以下是输出的屏幕截图: 奇怪的是时钟指针输出得很好,它们首先被添加到视图中。下面是一段代码片段,它勾勒出了这条线: for(int i=1; i<=60; i++) { int seconds = i; int radius = (screenWidth / 2); int centre = (screenWidth
for(int i=1; i<=60; i++) {
int seconds = i;
int radius = (screenWidth / 2);
int centre = (screenWidth / 2);
int totalLimit = 60;
int currentValue = seconds;
int theta = (360 / totalLimit) * currentValue;
double x = centre + radius * Math.cos(theta * Math.PI / 180);
double y = centre + radius * Math.sin(theta * Math.PI / 180);
float angle = (float) Math.toDegrees(Math.atan2(x - centre, y - centre));
if (angle < 0) {
angle += 360;
}
if (angle > 180)
angle -= 180;
else
angle += 180;
View view = new View(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(1, radius);
params.leftMargin = (int)x;
params.topMargin = (int)y;
view.setPivotX(0);
view.setPivotY(0);
view.setRotation(-angle);
view.setBackgroundColor(Color.WHITE);
mWatchView.addView(view, params);
views.add(view);
}
for(int i=1;i 180)
角度-=180;
其他的
角度+=180;
视图=新视图(此);
RelativeLayout.LayoutParams参数=新的RelativeLayout.LayoutParams(1,半径);
params.leftMargin=(int)x;
参数topMargin=(int)y;
view.setPivotX(0);
view.setPivotY(0);
视图。设置旋转(-角度);
视图.setBackgroundColor(颜色.白色);
mWatchView.addView(视图,参数);
视图。添加(视图);
}
您正确计算了外部起点和角度,但长度会发生什么变化?检查页边空白 好的,我现在从外到内画线,而不是从内到外画线。这就解决了这个问题
params.leftMargin = (int)(screenWidth-x);
params.topMargin = (int)(screenWidth-y);
还根据我想要的线的长度更改了半径
int length = 15;
int width = 1;
if (i == 10 || i == 20 || i == 30 || i == 40 || i == 50 || i == 60) {
length = 35;
width = 2;
}
if (i == 5 || i == 15 || i == 25 || i == 35 || i == 45 || i == 55) {
length = 25;
width = 2;
}
int seconds = i;
int radius = (screenWidth / 2)-length;
结果如下:
谢谢。关于如何在x、y方向添加视图,然后旋转视图,但仍保持其长度,有什么提示吗?