android 圆角图标 和不规则圆角(边框)

来源:互联网 发布:php提交表单发送邮件 编辑:程序博客网 时间:2024/06/04 22:56

android 圆角图标 和不规则圆角(边框)

这里写图片描述

需要求就是如图 所示

将 原图 变成 圆角 或者不规则的形状,应为桌面主题需要用到。

当然 方法很多 这边提供如下方法。

// 圓角    private Bitmap getRoundedCornerBitmap(Bitmap bitmap) {        Bitmap roundBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);        Canvas canvas = new Canvas(roundBitmap);        int color = 0xff424242;        Paint paint = new Paint();        Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());        RectF rectF = new RectF(rect);        float roundPx = 50;        paint.setAntiAlias(true);        canvas.drawARGB(0, 0, 0, 0);        paint.setColor(color);        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));        canvas.drawBitmap(bitmap, rect, rect, paint);        return roundBitmap;    }    // 不规则角    private Bitmap getRoundedCornerBitmap(Bitmap bitmap, Bitmap bg) {        Paint paint = new Paint();        float scaleX = (float) (bitmap.getWidth() * 1.0 / bg.getWidth()) + 0.1f;        float scaleY = (float) (bitmap.getHeight() * 1.0 / bg.getHeight()) + 0.1f;        Bitmap scaleBitmap = scaleBitmap(bg, scaleX, scaleY);        Bitmap roundBitmap = Bitmap.createBitmap(scaleBitmap.getWidth(), scaleBitmap.getHeight(), Config.ARGB_8888);        Canvas canvas = new Canvas(roundBitmap);        paint.setAntiAlias(true);        canvas.drawBitmap(scaleBitmap, 0, 0, paint);        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));        canvas.drawBitmap(bitmap, scaleBitmap.getWidth() / 2 - bitmap.getWidth() / 2, scaleBitmap.getHeight() / 2                - bitmap.getHeight() / 2, paint);        return roundBitmap;    }

DEMO 下载地址

0 0
原创粉丝点击