DrawArc半圈的位置(Android)

时间:2015-03-11 14:47:11

标签: android

我试图在ImageView中绘制一个半圈,但我无法控制绘制它的位置。我的想法是使用drawcircle(50,50,20,paint)将它绘制在另一个带有另一种颜色的圆圈内。这是我使用的代码:

<ImageView android:id="@+id/circle" 
android:layout_width="wrap_content"
android:layout_height="wrap_content" 
android:layout_gravity="center_horizontal" 
android:layout_marginTop="10sp" />

Bitmap bmp = Bitmap.createBitmap(100, 70, Bitmap.Config.RGB_565);
ImageView circle = (ImageView) findViewById (R.id.circle); 
Paint paint = new Paint(); 
paint.setColor(Color.RED); 
Canvas canvas = new Canvas (bmp); 
RectF rectf = new RectF (0, 0, 40, 40); 
canvas.drawArc(rectf, 0, 180, true, paint);

感谢。

1 个答案:

答案 0 :(得分:1)

我认为你遇到的问题是:你不理解Circle和Arc使用的两种不同的表示。

对于Circle,您需要为其指定中心的x,y位置和半径。 但是对于Arc,你需要容器​​的4个边缘。

所以看起来应该是这样的:

//setting for Circle
    paint.setColor(Color.RED);
    int xPosition=50;
    int yPosition=50;
    int size = 40;
    canvas.drawCircle(xPosition, yPosition, size/2, paint);
//setting for Arc
    paint.setColor(Color.YELLOW);
    size = size * 8 / 10;             // make the Arc smaller
    xPosition=xPosition-size/2;
    yPosition=yPosition-size/2;
    RectF rectf = new RectF (xPosition, yPosition, xPosition+size, yPosition+size);
    canvas.drawArc(rectf, 0+45, 180, true, paint);