我正在尝试修改android设备的操纵杆组件。目前,该组件能够跟踪手指的x和y位置并在那里画一个小圆圈。现在我想要做的是从中心向手指的x和y位置绘制一个矩形或弧线。在Android画布上绘制直角矩形/弧形
据我所知,该矩形只需要顶部,左侧,右侧和底部的值,只允许我绘制矩形水平或垂直。如果有人知道另一种方式来绘制这将是太棒了。
我设法得到了一个使用canvas.drawLine的直线矩形,但是我现在想要使用drawArc函数使矩形弯曲,但是这需要RectF的参数。
我,我现在使用的代码是:
@Override
protected void onDraw(Canvas canvas) {
int centerX = (getWidth())/2;
int centerY = (getHeight())/2;
Paint p = new Paint();
p.setColor(buttonColor);
RadialGradient gradient = new RadialGradient(centerX, centerY, joystickRadius,
backgroundColor,circleColor, android.graphics.Shader.TileMode.CLAMP);
//draw an outer circle
p.setDither(true);
p.setShader(gradient);
canvas.drawCircle((int) centerX, (int) centerY, joystickRadius, p);
p.setShader(null);
p.setColor(buttonColor);
p.setStyle(Paint.Style.FILL);
//draw the joystick thumbpad
canvas.drawCircle(x, y, buttonRadius, p);
// draw a line from the centre of outer circle to the center of the
// thumbpad. I want this to be a curved rectangle instead.
canvas.drawLine(centerX, centerY, x, y, p);
}
你能解释一下你所说的“弯曲矩形”是什么意思?你们是不是要画一个圆角的矩形?或者你想从点到点的某种弧。 – cemulate
我正在寻找一种方法来做一个圆角矩形,现在我想到了它。我最初以为这会是一样的,对于混乱感到抱歉。 – Andrew