Canvas 在画布的中心绘制圆弧

Canvas 在画布的中心绘制圆弧,canvas,android-canvas,Canvas,Android Canvas,这就是我画弧的方式 第一张图片显示了当前它是如何在画布上绘制的,总是左上角,我想补上 它位于画布示例第二张图片右下角的任意一角 public void onDraw(画布){ if(first==null) 第一个=新的RectF(); if(秒==null) 第二个=新的RectF(); if(p==null) p=新路径(); 画布。drawColor(颜色。透明); paint.reset(); paint.setAntiAlias(真); 浮动X,Y,半径,内半径; path.rese

这就是我画弧的方式

第一张图片显示了当前它是如何在画布上绘制的,总是左上角,我想补上 它位于画布示例第二张图片右下角的任意一角

public void onDraw(画布){
if(first==null)
第一个=新的RectF();
if(秒==null)
第二个=新的RectF();
if(p==null)
p=新路径();
画布。drawColor(颜色。透明);
paint.reset();
paint.setAntiAlias(真);
浮动X,Y,半径,内半径;
path.reset();
浮动电流角=90;
浮子电流扫描;
浮动填充=0;
_X=150;//getWidth();
_Y=150;//getHeight();
如果(X
但它总是在左上角绘制,我怎样才能将其更改为画布的中心和任何一个角。我希望能够灵活地在画布中的任何位置更改弧的位置


请帮助。

更改
\ux
\uy
变量

我不明白你为什么需要这个

if (_X < _Y) {
    radius = _X;
} else {
    radius = _Y;
}

改变X,Y不会改变弧的位置吗
\u X=canvas.getWidth()-radius
&
\u Y=canvas.getHeight()-radius
应该在右下角绘制。X和Y不是与弧的边界相关,而是与位置相关吗?我尝试了您建议的方法,但没有给出预期的结果。但我已经尝试过了,我想我能做到。虽然我仍然很困惑,当传递到参数时,x和y是如何转换到位置的,实际上x和y是中心。边界由
半径
变量设置。看看正在传递给
first
second
set()
方法的参数。我有了一个想法,感谢您帮助我找到了正确的方向。
if (_X < _Y) {
    radius = _X;
} else {
    radius = _Y;
}
//For bottom right
_X = getWidth() - radius;
_Y = getHeight() - radius;

//For top right
_X = getWidth() - radius;
_Y = radius;

//For bottom left
_X = radius;
_Y = getHeight() - radius;

//For center
_X = getWidth() / 2;
_Y = getHeight() / 2;