android画一个圆形图片组件
imageview 显示圆形图片如下图。

圆形头像原理。
1、根据图片创建一个大小相同的画布。
2、在画布上画一个圆形。
3、画一个绘制交集,显示上层。
// 将圆形图片,返回Bitmap
public static Bitmap getCircleBitmap(Bitmap bitmap) {
int x = bitmap.getWidth();
Bitmap output = Bitmap.createBitmap(x,
x, Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
// 根据原来图片大小画一个矩形
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
paint.setAntiAlias(true);
paint.setColor(color);
// 画出一个圆
canvas.drawCircle(x/2, x/2, x/2, paint);
canvas.translate(-25, -6);
// 取两层绘制交集,显示上层
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
// 将图片画上去
canvas.drawBitmap(bitmap, rect, rect, paint);
// 返回Bitmap对象
return output;
}
使用。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:gravity="center"> <org.open.CircleAvatarView android:layout_width="38dp" android:layout_height="37dp" android:scaleType="centerCrop" android:src="@drawable/default_user_icon" > </org.open.CircleAvatarView> </LinearLayout>

浙公网安备 33010602011771号