继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

android仿QQ头像裁剪

慕神8447489
关注TA
已关注
手记 1312
粉丝 174
获赞 957

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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP