próbuję narysować dwa okręgi tak:Rysunek 2 kółka na płótnie
To jak próbuję to zrobić:
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);
I tu jest moja drawCircles()
metoda:
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);
}
nie wiem dlaczego, ale mam tylko jedno koło, mały (ten wyciągnięty z paint2
). Jaki może być tego powód?
sprawdzić wartość promienia w trybie debugowania. może być mniejszy niż 10 to, co odejmujesz w momencie losowania. – Raj
@Raj Sprawdziłem to już, promień jest dobry. – dziwna
, a następnie sprawdź wartość promienia. może to być 60. do testowania hardcode w pierwszym drawCircle do niektórych gdzie około 30 takich jak to i sprawdź. c.drawCircle (szerokość/2, wysokość/2, 30, farba); – Raj