Android开发,将图片(bitmap)变成圆形图片、图片文件变成bitmap的方法
2015-10-27 16:05
459 查看
我在最近进行Android项目开发的时候,遇到了头像的问题,个人头像一般是正方形,这是需要将它变成圆形,这是一个比较简单的方法。
写以自用。
新建一个工具类BitmapToRound_Util.java
开始使用,在需要使用的地方,调用方法:
先初始化:
调用:
输出后就是一个圆形的bitmap
如果要将图片文件变成bitmap,可以使用以下的方法:
写以自用。
新建一个工具类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*);
相关文章推荐
- Android自动登录与记住密码
- android 广告栏 viewpager
- android .9.png ”点九” 图片制作方法
- ListView的基础应用
- Android把view的画面转换为bitmap
- Android背景选择器、Textview点击效果
- Android基础入门教程——8.3.8 Paint API之—— Xfermode与PorterDuff详解(五)
- android scroller overscroller用法
- Android本地数据存储之.txt文件存储读写
- Android蓝牙设备的检测
- Android 拍照,从图库选择照片,并裁剪,上传到服务器
- android library工程中使用switch_case语句,调用资源文件的id出现错误的原因分析及解决方法
- Android中软键盘InputMethodManager的弹出和隐藏,以及显示和隐藏的监听
- Android Studio 权威教程
- Android开发,关闭所有activity的方法
- Android自定义控件系列三:如何画画
- Android线程
- Android双缓冲技术
- 解决Android SDK Manager无法更新
- Android自定义控件系列二:如何自定义属性