圆形圆角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
<?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
相关文章推荐
- html2canvas 网页截图 下载 上传
- 什么是机器学习?
- iOS平台游戏安全之IPA破解原理及防御
- Optimizing Java Code(Pro Android Apps Performance Optimization)
- 关于定义布局OnMeasure 的总结
- js上传图片预览
- Spring boot初探
- https和http有何区别
- 单例中涉及的static,load,initialize
- zTree自定义Title属性
- 0909 第一次作业
- annotation(@Retention@Target)详解
- 数据库测试用例要点
- 使用Highcharts显示饼图时,浏览器崩溃,响应不过来
- Java中的static关键字
- checkbox全选及全选遍历获得值
- iScroll 4.2.5 中文API
- 十进制转化为12进制
- @@IDENTITY,SCOPE_IDENTITY()和IDENT_CURRENT('TableName') 用法
- 0909 对编译原理的想法