您的位置:首页 > 其它

圆形圆角imagView

2015-09-10 16:02 393 查看
自定义属性::;

<?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.csdn.net/detail/e10010e/9095329
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: