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>
posted @ 2012-05-30 14:43  xianyuan  阅读(1707)  评论(0编辑  收藏  举报