Java 圆角位图&;透明背景
我正在尝试使用下面的代码来圆角位图。问题是,无论我将油漆的颜色设置为什么,例如,Java 圆角位图&;透明背景,java,android,bitmap,Java,Android,Bitmap,我正在尝试使用下面的代码来圆角位图。问题是,无论我将油漆的颜色设置为什么,例如,color.TRANSPARENT,它总是黑色的。我怎样才能真正剪辑位图的角点,而不仅仅是将它们涂成黑色 谢谢 public static Bitmap roundCorners(Bitmap src, int radius) { //Create a *mutable* location, and a canvas to draw into it int width = src.getWid
color.TRANSPARENT
,它总是黑色的。我怎样才能真正剪辑位图的角点,而不仅仅是将它们涂成黑色
谢谢
public static Bitmap roundCorners(Bitmap src, int radius) {
//Create a *mutable* location, and a canvas to draw into it
int width = src.getWidth();
int height = src.getHeight();
Bitmap result = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Canvas canvas = new Canvas(result);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
RectF rect = new RectF(0, 0, width, height);
Shader bitmapShader = new BitmapShader(src, TileMode.CLAMP, TileMode.CLAMP);
paint.setColor(0xFF000000);
paint.setShader(bitmapShader);
canvas.drawRoundRect(rect, radius, radius, paint);
return result;
}
有一种更简单的方法,可以一次完成。只需绘制一个圆角矩形,但在绘制上设置BitmapShader。这将用位图填充圆角矩形。无需更改xfermode或调用drawBitmap。有一种更简单的方法,可以一次性使用。只需绘制一个圆角矩形,但在绘制上设置BitmapShader。这将用位图填充圆角矩形。无需更改xfermode或调用drawBitmap。我已更新代码以使用您的方法,请参见上文。同样的问题,返回的位图上仍然会出现黑色背景…然后听起来好像位图没有被清除。尝试先执行bitmap.橡皮擦颜色(0)。我更新了代码以使用您的方法,请参见上文。同样的问题,返回的位图上仍然会出现黑色背景…然后听起来好像位图没有被清除。尝试执行位图。请先擦除颜色(0)。