为了账号安全,请及时绑定邮箱和手机立即绑定

android仿QQ头像裁剪

标签:
Android

webp

clipbitmap.gif

Demo.apk下载

Github地址

属性类型说明
maskColorcolor遮罩层颜色(默认#60000000)
borderColorcolor裁剪框内部边框颜色(默认白色)
radiusdimension裁剪框圆角(默认为最大值,裁剪框高度的一半)
maxScalefloat图片最大放大倍数(默认3)
doubleClickScalefloat双击图片放大倍数(默认1.8,最大值不超过maxScale)

设置Bitmap

推荐使用setBitmapForHeight()和setBitmapForWidth()
LikeQQCropView likeView=findViewById(R.id.likeView);//如果传入的bitmap过大,此方法有OOM的可能likeView.setBitmap(Bitmap bitmap);//以下方法很安全,做了防止OOM的压缩/**设置压缩之后的宽和高*/likeView.setBitmap(多参);

[推荐该方法]设置压缩之后的高度(宽度自适应)
likeView.setBitmapForHeight(多参);

[推荐该方法]设置压缩之后的宽度(高度自适应)
likeView.setBitmapForWidth(多参);/**设置压缩的缩放倍数(偶数),图片缩小一半传2,缩小4倍传4*/likeView.setBitmapForScale(多参);

对Bitmap的操作

/**水平翻转*/likeView.horizontalFlip();/**垂直翻转*/likeView.verticalFlip();/**垂直+水平翻转*/likeView.verticalAndHorizontalFlip();/**裁剪*/likeView.clip();/**图片位置重置*/likeView.reset();/**设置遮罩层*/likeView.setMaskColor(color);/**设置裁剪框内部边框颜色*/likeView.setBorderColor(color);/**设置裁剪框圆角*/likeView.setRadius(radius);/**设置图片最大放大倍数*/likeView.setMaxScale(1);/**设置双击图片放大倍数*/likeView.setDoubleClickScale(1);/**获取裁剪框宽度*/likeView.getClipWidth();

如果手机相册里面的图片出现旋转的情况

likeView.setBitmapForWidth(filePath,1080);int degree = likeView.readPictureDegree("filePath");

Bitmap oldBitmap = likeView.getBitmap();
Bitmap rotateBitmap = likeView.rotateBitmap(degree, oldBitmap);

likeView.setBitmap(rotateBitmap);

或者使用下面4种方法,自动判断是否需要旋转图片
likeView.setBitmapForHeightToRotate(filePath,height);
likeView.setBitmapForWidthToRotate(filePath,width);
likeView.setBitmapToRotate(filePath,width,height);
likeView.setBitmapForScaleToRotate(filePath,4);


Github源码地址

如果此文对您有帮助,还请在github上给个star

implementation 'com.github:MyCropBitmap:1.0.3' 查看最新版本号请上github



作者:Y哟嚯Y
链接:https://www.jianshu.com/p/e8af59cc2cb0


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消