圆角头像的实现
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; } }
/* 将头像转为圆形 */ Resources res = getResources(); Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.head); head.setImageBitmap(ImageHelper.toRoundBitmap(bmp));
补充:软件开发 , Java ,