Android开发,将图片(bitmap)变成圆形图片、图片文件变成bitmap的方法

我在最近进行Android项目开发的时候,遇到了头像的问题,个人头像一般是正方形,这是需要将它变成圆形,这是一个比较简单的方法。

写以自用。

新建一个工具类BitmapToRound_Util.java

/**
 * 将bitmap处理为圆形
 * @author Stanny
 *
 * 2015年9月28日
 */
public class BitmapToRound_Util {
	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; 
		} 
}

开始使用,在需要使用的地方,调用方法:

先初始化:

private BitmapToRound_Util round_Util = new BitmapToRound_Util();

调用

bitmap = round_Util.toRoundBitmap(bitmap);

输出后就是一个圆形的bitmap


如果要将图片文件变成bitmap,可以使用以下的方法:

Bitmap bitmap = BitmapFactory.decodeFile(*your image path——>/sdcard0/...../**.png*);

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值