WEB开发网
开发学院手机开发Android 开发 android 图片处理之制作圆角图片 阅读

android 图片处理之制作圆角图片

 2013-03-22 17:10:26 来源:开发学院   
核心提示:以下是改进一个前人做的圆角图片的例子,少创建一次bitmappublic static Bitmap roundCorners(final Bitmap source, final float radius) {int width = source.getWidth();int height = source.getH

以下是改进一个前人做的圆角图片的例子,少创建一次bitmap
public static Bitmap roundCorners(final Bitmap source, final float radius) {
int width = source.getWidth();
int height = source.getHeight();

Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(android.graphics.Color.WHITE);

Bitmap clipped = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(clipped);
canvas.drawRoundRect(new RectF(0, 0, width, height), radius, radius,
paint);

paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(source, 0, 0, paint);

source.recycle();

return clipped;
}


原例:
/**
* Round the corners of a {@link Bitmap}
*
* @param source
* @param radius
* @return rounded corner bitmap
*/
public static Bitmap roundCorners(final Bitmap source, final float radius) {
int width = source.getWidth();
int height = source.getHeight();

Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(WHITE);

Bitmap clipped = Bitmap.createBitmap(width, height, ARGB_8888);
Canvas canvas = new Canvas(clipped);
canvas.drawRoundRect(new RectF(0, 0, width, height), radius, radius,
paint);
paint.setXfermode(new PorterDuffXfermode(DST_IN));

Bitmap rounded = Bitmap.createBitmap(width, height, ARGB_8888);
canvas = new Canvas(rounded);
canvas.drawBitmap(source, 0, 0, null);
canvas.drawBitmap(clipped, 0, 0, paint);

source.recycle();
clipped.recycle();

return rounded;

Tags:android 图片 处理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接