Androidデバイスのジョイスティックコンポーネントを変更しようとしています。現在、コンポーネントは指のxとyの位置を追跡し、そこに小さな円を描くことができます。今、私がやりたいのは、中心から指のxとyの位置まで長方形または円弧を描くことです。
私の知る限り、長方形は上、左、右、下の値のみを取り、水平または垂直のいずれかで長方形を描画することしかできません。誰かがこれを描く別の方法を知っているなら、それは素晴らしいでしょう。
私は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);
}