圆角头像的实现

来源:互联网 发布:广东11选5遗漏数据 编辑:程序博客网 时间:2024/06/10 09:14

图片处理类:


public class ImageHelper {    /**     * 转换图片成圆形     * @param bitmap 传入Bitmap对象     * @return     */    public static Bitmap toRoundBitmap(Bitmap bitmap) {            int width = bitmap.getWidth();            int height = bitmap.getHeight();            float roundPx;            float left,top,right,bottom,dst_left,dst_top,dst_right,dst_bottom;            if (width <= height) {                    roundPx = width / 2;                    top = 0;                    bottom = width;                    left = 0;                    right = width;                    height = width;                    dst_left = 0;                    dst_top = 0;                    dst_right = width;                    dst_bottom = width;            } else {                    roundPx = height / 2;                    float clip = (width - height) / 2;                    left = clip;                    right = width - clip;                    top = 0;                    bottom = height;                    width = height;                    dst_left = 0;                    dst_top = 0;                    dst_right = height;                    dst_bottom = height;            }                        Bitmap output = Bitmap. createBitmap(width,                            height, Config. ARGB_8888 );            Canvas canvas = new Canvas(output);                        final int color = 0xff424242;            final Paint paint = new Paint();            final Rect src = new Rect(( int)left, ( int )top, ( int)right, (int )bottom);            final Rect dst = new Rect(( int)dst_left, ( int )dst_top, (int )dst_right, ( int)dst_bottom);            final RectF rectF = new RectF(dst);            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, src, dst, paint);            return output;    }   }


在Activity中调用:


    /* 将头像转为圆形 */     Resources res = getResources();     Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.head);     head.setImageBitmap(ImageHelper.toRoundBitmap(bmp));