安卓实现圆角头像,已封装成工具类,方便使用
来源:互联网 发布:手机号码 java正则式 编辑:程序博客网 时间:2024/05/16 09:55
首先我们来说一下思路:
只需三步:
在Canvas上画一个以原图的宽或高(最小的那个)为半径的圆
再通过Paint设置图片相交的属性为SRC_IN,也就是说取两层的交集,并且显示的是上层。
最后,将原图画在这个圆上。
工具类中,我注释加的很详细,大家应该都能看懂的
接下来,我们来看看这个工具类:
public class CircularHeadUtils { public static Bitmap toCircularHead(Bitmap bitmap) { //取得图片的宽高 int width = bitmap.getWidth(); int height = bitmap.getHeight(); //正方形的边长(取宽和高中最短的作边长) int r = width > height ? height : width; //构建一个bitmap Bitmap output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); //new一个Canvas,在output上画图 Canvas canvas = new Canvas(output); Paint paint = new Paint(); //正方形 RectF rectF = new RectF(0,0,r,r); //抗锯齿 paint.setAntiAlias(true); //画圆角矩形(当x方向和y方向上的长度相等时,就是一个圆) canvas.drawRoundRect(rectF, r/2, r/2, paint); //设置当两个图形相交时的模式,为SRC_IN,代表保留相交部分的上层,去掉其余部分 paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); //将图片画在output上 canvas.drawBitmap(bitmap, null, rectF, paint); return output; }}
那我们如何使用它呢?
在Activity中使用工具类创造圆角头像:
ImageView mHead = (ImageView) findViewById(R.id.iv_head); Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.head); mHead.setImageBitmap(CircularHeadUtils.toCircularHead(b));
希望和大家多多交流,共同进步!
0 0
- 安卓实现圆角头像,已封装成工具类,方便使用
- 圆角头像实现工具类
- 安卓使用Picasso封装图片加载工具类
- OkHttpUtils已封装好的工具类+依赖,直接使用
- AndroidClipSquare安卓实现方形头像裁剪
- android 仿ios 对话框已封装成工具类
- 学习笔记之——Android中的Picasso实现圆形头像、圆角图片工具类
- 安卓通用标题栏工具类的封装
- 安卓-封装实用的Toast工具类
- Android 表情功能实现,封装面板方便使用
- iOS开发工具类,包含常用功能,为方便使用,特为常用功能封装并且使用宏定义方式运用
- 安卓头像设置
- 安卓上传头像
- 安卓上传头像
- 简单的封装了一个OKHttp网络请求工具类,直接粘贴进去调用使用,很方便
- java流工具类使用很方便
- SharedPreferences轻量级存储工具类--方便使用
- ViewPager工具类,功能全面,方便使用
- java源码分析(10)- Double(1)
- angularjs内置时间过滤
- liunx centos 下安装 mysql
- vim环境设定:~/.vimrc(语法高亮等一些的设置)
- cocos2dx上如何对图片和文字做倒影(镜像)效果
- 安卓实现圆角头像,已封装成工具类,方便使用
- LeetCode-278.First Bad Version
- Walker之注册页面的实现
- Unity发布Android新手教学 (小白都能看懂的教学 )
- 移动App统计指标汇总
- DrawerLayout 使用
- 【java并发】一个线程的内心独白 超赞!!!
- JS设计模式之代理模式
- autoit的基础知识