Ich versuche, einen Kreis aus einem quadratischen Bitmap zu schneiden folgenden Code verwendenAndroid - Schneiden Sie einen Kreis aus einem Quadrat Bitmap
Canvas canvas=new Canvas(bitmapimg);
int circleXCoord = bitmapimg .getWidth()/2;
int circleYCoord = bitmapimg .getHeight()/2;
int circleRadius = bitmapimg .getWidth()/2;
Rect rect = new Rect(circleXCoord - circleRadius, circleYCoord - circleRadius, circleXCoord + circleRadius, circleYCoord + circleRadius);
int width = rect.width();
int height = rect.height();
Paint paint = new Paint();
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.BLUE);
canvas.drawRect(rect, paint);
canvas.drawBitmap(bitmapimg , rect, rect, paint);
Path p = new Path();
p.addCircle(circleXCoord, circleYCoord, width/2F, Path.Direction.CW);
canvas.clipPath(p, Region.Op.DIFFERENCE);
canvas.drawColor(0, PorterDuff.Mode.CLEAR);
Die Idee ist, eine quadratische (rechteckig) Bitmap befestigen auf die Leinwand und dann einen Clip kreisförmiger Pfad. Löschen Sie den Unterschied zwischen dem Rechteck und dem Kreis (machen Sie es transparent).
Der Code funktioniert gut für Android 4, aber auf Android 2.3.3-Gerät, der Unterschied Bereich erscheint eher schwarz, dass transparent.
Fehle ich etwas hier oder PorterDuff.Mode.CLEAR wird nicht in Lebkuchen unterstützt? Gibt es eine bessere Möglichkeit, einen Kreis von einem Quadrat in Android zu schneiden?
Kreis Bitmap bekommen, aber warum Platz transparenter Bereich in meinem Fall schwarz dargestellt? – Ram