实现圆形头像的一种方式
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);
浙公网安备 33010602011771号