尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何快速实现Android头像裁剪?Glide Transformations之Crop系列转换API完全指南

如何快速实现Android头像裁剪?Glide Transformations之Crop系列转换API完全指南 如何快速实现Android头像裁剪Glide Transformations之Crop系列转换API完全指南【免费下载链接】glide-transformationsAn Android transformation library providing a variety of image transformations for Glide.项目地址: https://gitcode.com/gh_mirrors/gl/glide-transformationsGlide Transformations 是一款流行的 Android 开源图片转换库为 Glide 图片加载框架提供了即开即用的Crop 系列裁剪转换 API——圆形头像、正方形裁剪、带边框头像、圆角卡片等效果一行代码即可实现无需自己编写 Bitmap 裁剪逻辑是新手做 Android 头像裁剪与图片缩略的首选工具。Crop 系列解决了什么问题Android 应用中常见的图片需求 用户头像圆形、可能要带彩色边框 信息流缩略图正方形或固定比例 卡片/横幅任意角度的圆角传统做法需要自己加载 Bitmap、创建 Canvas、计算缩放比例并绘制代码量大且容易出坑内存回收、透明通道、缓存失效等。而 Glide Transformations 把这些逻辑全部封装成了 Transformation 类挂到 Glide 请求链上即可且转换参数会自动参与磁盘缓存 Key 的计算不同裁剪参数不会互相污染缓存。快速上手两步完成 Android 头像裁剪第一步在build.gradle中加入依赖implementation jp.wasabeef:glide-transformations:4.3.0第二步在 Glide 加载请求中通过bitmapTransform挂载转换即可。官方示例工程位于 example/ 目录其中 MainAdapter.kt 演示了每一种 Crop 转换的完整用法非常适合边读边跑。5 个 Crop 系列 API 全解析1. CropTransformation按指定尺寸精准裁剪最灵活的一个支持自定义输出宽高并通过CropType枚举选择裁剪位置TOP、CENTER、BOTTOM默认居中见 CropTransformation.javaGlide.with(this).load(R.drawable.demo) .apply(RequestOptions.bitmapTransform( CropTransformation(300, 100, CropType.CENTER))) .into(imageView)宽高传0时自动使用原图尺寸。它先按等比放大覆盖再按指定位置裁剪因此任意比例的图片都能裁出目标宽高不会拉伸变形。2. CropSquareTransformation一行代码正方形裁剪信息流、瀑布流的正方形缩略图用它最省事无需传任何参数见 CropSquareTransformation.javaGlide.with(this).load(url) .apply(RequestOptions.bitmapTransform(CropSquareTransformation())) .into(imageView)内部对图片做居中正方形中心裁剪centerCrop输出边长取容器宽高的较大值。3. CropCircleTransformation圆形头像最经典的头像裁剪效果Glide.with(this).load(url) .apply(RequestOptions.bitmapTransform(CropCircleTransformation())) .into(imageView)⚠️注意该转换已被标记为Deprecated源码注释推荐使用 Glide 自带的RequestOptions#circleCrop()方法见 CropCircleTransformation.java新项目建议直接写.apply(RequestOptions.circleCrop())效果相同。4. CropCircleWithBorderTransformation带边框的圆形头像用户头像加一圈品牌色边框的招牌效果见 CropCircleWithBorderTransformation.java无参构造默认 4dp 宽度、黑色边框自定义构造可指定边框宽度与颜色Glide.with(this).load(url) .apply(RequestOptions.bitmapTransform( CropCircleWithBorderTransformation(Utils.toDp(4), Color.rgb(0, 145, 86)))) .into(imageView)5. RoundedCornersTransformation多模式圆角转换圆角卡片、只裁顶部、对角双圆角等高级样式都能搞定参数为radius圆角半径、margin内缩边距、cornerType14 种圆角模式见 RoundedCornersTransformation.javaGlide.with(this).load(url) .apply(RequestOptions.bitmapTransform( RoundedCornersTransformation(16, 0, RoundedCornersTransformation.CornerType.ALL))) .into(imageView)CornerType除了ALL还支持TOP、BOTTOM、LEFT、RIGHT、DIAGONAL_FROM_TOP_LEFT等 14 种模式可以精确控制哪几个角是圆的适合做聊天气泡、异形卡片等设计。进阶技巧多转换链式组合Glide 原生支持MultiTransformation可以按顺序串联多个转换例如先裁剪、再圆角官方写法见 README.md 的 Advanced Step 3val multi MultiTransformationBitmap( CropTransformation(300, 100, CropType.CENTER), RoundedCornersTransformation(16, 0)) Glide.with(this).load(url) .apply(RequestOptions.bitmapTransform(multi)) .into(imageView)选型速查表与小贴士使用场景推荐 API用户圆形头像CropCircleWithBorderTransformation正方形信息流缩略图CropSquareTransformation自定义比例裁剪横版/竖版CropTransformationCropType卡片、气泡圆角RoundedCornersTransformation小贴士库最低支持 minSdk 21Glide 4.x 用户开箱即用若还想叠加模糊、灰度、GPU 滤镜等效果完整 API 清单可参考 README.md 的 Transformations 章节所有转换类的源码都集中在 transformations/src/main/java/jp/wasabeef/glide/transformations/ 目录下每个文件都不长值得通读一遍掌握以上 5 个 Crop 系列 APIAndroid 头像裁剪、缩略图、圆角卡片等 90% 的图片裁剪需求都能一行代码优雅解决。【免费下载链接】glide-transformationsAn Android transformation library providing a variety of image transformations for Glide.项目地址: https://gitcode.com/gh_mirrors/gl/glide-transformations创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表