自定义属性::;
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- 自定义圆形imageview/圆角图imageview 自定义属性 开始 -->
<attr name="borderRadius" format="dimension" />
<attr name="type">
<enum name="circle" value="0" />
<enum name="round" value="1" />
</attr>
<attr name="border_thickness" format="dimension" />
<attr name="border_inside_color" format="color" />
<attr name="border_outside_color" format="color"/>
<declare-styleable name="MRoundedBitmapView">\
/** 圆角大小*/
<attr name="borderRadius" />
/** 类型 circle圆形图 、round圆角图 */
<attr name="type" />
/** 边框厚度 (无效) **/
<attr name="border_thickness"/>
/** 内边框颜色 (无效)**/
<attr name="border_inside_color"/>
/** 外边框颜色 (无效)**/
<attr name="border_outside_color"/>
</declare-styleable>
<!-- 自定义圆形imageview/圆角图imageview 自定义结束 -->
</resources>
绘图::::
/**
* 根据原图和变长绘制圆形图片
*
* @param source
* @param min
* @return
*/
private Bitmap createCircleImage(Bitmap source, int min)
{
final Paint paint = new Paint();
paint.setAntiAlias(true);
Bitmap target = Bitmap.createBitmap(min, min, Bitmap.Config.ARGB_8888);
/**
* 产生一个同样大小的画布
*/
Canvas canvas = new Canvas(target);
/**
* 首先绘制圆形
*/
canvas.drawCircle(min / 2, min / 2, min / 2, paint);
/**
* 使用SRC_IN,参考上面的说明
*/
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
/**
* 绘制图片
*/
canvas.drawBitmap(source, 0, 0, paint);
return target;
}
/**
* 根据原图添加圆角
*
* @param source
* @return
*/
private Bitmap createRoundConerImage(Bitmap source)
{
final Paint paint = new Paint();
paint.setAntiAlias(true);
Bitmap target = Bitmap.createBitmap(defaultWidth, defaultWidth, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(target);
RectF rect = new RectF(0, 0, source.getWidth(), source.getHeight());
canvas.drawRoundRect(rect,mRadius, mRadius, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(source, 0, 0, paint);
return target;
}
下载地址::
http://download.youkuaiyun.com/detail/e10010e/9095329