我试图在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);
感谢。
答案 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);