Android裁剪图片为圆形图片
来源:互联网 发布:苏宁易购秒杀软件 编辑:程序博客网 时间:2024/05/15 23:50
以前在eoe论坛中找过裁剪图片为圆形图片的方法,但是效果都不是很理想,这几天因为公司业务的要求,需要对头像进行裁剪以圆形
的方式显示,这个方法是根据传入的图片的高度(height)和宽度(width)决定的,如果是 width <= height
时,则会裁剪高度,裁剪的区域是宽度不变高度从顶部到宽度width的长度;如果 width >
height,则会裁剪宽度,裁剪的区域是高度不变,宽度是取的图片宽度的中心区域,不过不同的业务需求,对裁剪图片要求不一样,可以根据业务的需求来调
整裁剪的区域。
好了,不多说了,直接上代码
/** * 转换图片成圆形 * @param bitmap 传入Bitmap对象 * @return */ public Bitmap toRoundBitmap(Bitmap bitmap) { int width = bitmap.getWidth(); int height = bitmap.getHeight(); float roundPx; float left,top,right,bottom,dst_left,dst_top,dst_right,dst_bottom; if (width <= height) { roundPx = width / 2; top = 0; bottom = width; left = 0; right = width; height = width; dst_left = 0; dst_top = 0; dst_right = width; dst_bottom = width; } else { roundPx = height / 2; float clip = (width - height) / 2; left = clip; right = width - clip; top = 0; bottom = height; width = height; dst_left = 0; dst_top = 0; dst_right = height; dst_bottom = height; } Bitmap output = Bitmap.createBitmap(width, height, Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect src = new Rect((int)left, (int)top, (int)right, (int)bottom); final Rect dst = new Rect((int)dst_left, (int)dst_top, (int)dst_right, (int)dst_bottom); final RectF rectF = new RectF(dst); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, src, dst, paint); return output; }
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- Android裁剪图片为圆形
- Android裁剪图片为圆形
- Android裁剪图片为圆形图片
- Android裁剪图片为圆形图片
- Android裁剪图片为圆形图片
- Android裁剪图片为圆形图片
- Android裁剪图片为圆形图片
- Android裁剪图片为圆形图片
- Android裁剪图片为圆形图片
- Android 裁剪图片为圆形图片
- android系统方法裁剪图片部分手机显示为圆形
- Quartz2D-将图片裁剪为圆形
- Quartz2D - 图片裁剪为正圆形
- Quartz2D - 图片裁剪为圆形(加边框)
- 图片裁剪为圆形(.png)
- android圆形图片裁剪demo以及实现
- 裁剪圆形图片
- 如何裁剪圆形图片
- 编程之美笔记
- jQuery网格插件 ParamQuery
- JavaScript秘密花园 - Type Casting,undefined,eval,setTimeout,Auto Semicolon Insertion
- iOS开发那些事-iOS常用设计模式–委托模式
- 扁平风格 UI 工具包 Flat UI
- Android裁剪图片为圆形图片
- Android数据存取
- JavaScript秘密花园 - hasOwnProperty,Functions,this
- iOS开发那些事-iOS常用设计模式–委托模式案例实现
- 华为:给定一个数组input[],如果数组长度n为奇数,则将数组中最大的元素放到 output[]数组最中间的位置,如果数组长度n为偶数。。
- 动态规划+之基础递推+noj三角形
- JavaScript初学者应注意的七个细节
- android 底部选项卡(TabHost)
- Clairewd’s message(密文转换)