próbuję wyciąć kółko z kwadratowym bitmapy za pomocą następującego koduAndroid - cięcie okrąg z kwadratowym 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);
Chodzi o to, aby dołączyć do kwadratu (prostokątne) bitmapy na płótno, a następnie przypiąć okrągła ścieżka. Usuń różnicę między prostokątem a okręgiem (uczyń ją przezroczystą).
Kod działa poprawnie na Androidzie 4, ale na urządzeniu z systemem Android 2.3.3 obszar różnic jest czarny, a nie przezroczysty.
Czy czegoś tu brakuje, czy PorterDuff.Mode.CLEAR nie jest obsługiwany w pierniku? Czy istnieje lepszy sposób na wycięcie koła z kwadratu w systemie Android?
coraz okrągły bitmapę ale dlaczego kwadratowy obszar przezroczysty czarny pokazano w moim przypadku? – Ram