我想畫兩個圈是這樣的:在畫布上繪製2圈
這是我正在努力做到這一點:
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);
Canvas c = new Canvas(bmp);
RectF rect = new RectF(0,0,width,width);
Paint paint = new Paint();
drawCircles(paint, c, width, height, width);
ImageView img = (ImageView) findViewById(R.id.imageView1);
img.setImageBitmap(bmp);
img.setScaleType(ScaleType.FIT_CENTER);
這裏是我drawCircles()
方法:
private void drawCircles(Paint paint, Canvas c, int width, int height, int radius) {
paint.setARGB(255, 255 , 10, 21);
paint.setStrokeWidth(10);
paint.setAntiAlias(true);
paint.setStrokeCap(Paint.Cap.BUTT);
paint.setStyle(Paint.Style.STROKE);
if(width < height && radius == 0){
radius = width/2;
height = width;
} else if (radius == 0){
radius = height/2;
width = height;
}
Paint paint2 = new Paint();
paint2.setARGB(255, 255 , 10, 21);
paint2.setStrokeWidth(10);
paint2.setAntiAlias(true);
paint2.setStrokeCap(Paint.Cap.BUTT);
paint2.setStyle(Paint.Style.STROKE);
c.drawCircle(width/2, height/2, radius-10, paint);
c.drawCircle(width/2, height/2, 50, paint2);
}
我不知道爲什麼,但我只得到一個圈,小一個(用paint2
繪製的那個)。 可能是什麼原因?
在調試模式下檢查您的半徑值。可能是它的抽取時間減去了10倍。 – Raj
@Raj我已經查過了,半徑很好。 – dziwna
然後檢查半徑值。它可能是60,測試硬編碼在第一drawCircle radious到某些地方約30像這樣並檢查。 c.drawCircle(width/2,height/2,30,paint); – Raj