实现圆形头像的一种方式

1.新建一个类:

public class ImageLoader {
	public static Bitmap getRoundBitmap(Bitmap bitmap) {
		// 获取传入进来的Bitmap宽度和高度
		int width = bitmap.getWidth();
		int height = bitmap.getHeight();
		int r = 0;// 园的半径
		if (width < height) {
			r = width;
		} else {
			r = height;
		}
		// 新建一个bitmap,相当于传入进来的bitmap的copy
		Bitmap backgroundBitmap = Bitmap.createBitmap(width, height,
				Config.ARGB_8888);
		// 建立画布
		Canvas canvas = new Canvas(backgroundBitmap);
		// 建立画笔
		Paint paint = new Paint();
		// 无锯齿
		paint.setAntiAlias(true);
		// 矩形
		RectF rect = new RectF(0, 0, r, r);
		// 画圆角矩形,当它的宽和高一样时,就是一个圆了
		canvas.drawRoundRect(rect, r / 2, r / 2, paint);
		// 取画布和bitmap相交的部分,即展示的圆
		paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
		// 画出圆形头像
		canvas.drawBitmap(bitmap, null, rect, paint);

		return backgroundBitmap;
	}
}

2.在xml文件中直接写imageview控件:
 <ImageView
        android:id="@+id/roundimage"
        android:layout_width="400dp"
        android:layout_height="400dp"
        />

3.在给imageview设置图片的地方添加代码:
image = (ImageView) findViewById(R.id.roundimage);
		Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
				R.drawable.girl);
		Bitmap bm = ImageLoader.getRoundBitmap(bitmap);
		image.setImageBitmap(bm);
posted on 2016-12-26 14:49  CVmen  阅读(75)  评论(0)    收藏  举报