展会信息港展会大全

android开发之图片处理之制作圆角图片
来源:互联网   发布日期:2016-01-19 12:20:44   浏览:1793次  

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

以下是改进一个前人做的圆角图片的例子,少创建一次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;

}

赞助本站

人工智能实验室
AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港