拓冰建站拓冰建站
首页 / 资讯中心 / 正文

圆角 + 裁剪组合使用:SuperImageView 模块化特性的高级玩法

圆角 裁剪组合使用SuperImageView 模块化特性的高级玩法【免费下载链接】SuperImageViewCrop and Rounded Corners added to an ImageView.项目地址: https://gitcode.com/gh_mirrors/su/SuperImageView如果你正在开发 Android 应用一定被「图片裁剪」和「图片圆角」这两件事反复折磨过系统自带的centerCrop不能满足需求圆角又要自己写 Shader 或者引入笨重的图片加载库。SuperImageView 正是为解决这些痛点而生的开源库它通过模块化设计把裁剪与圆角封装成两个独立能力让开发者像搭积木一样自由组合出想要的图片效果。今天这篇文章就带大家解锁 SuperImageView 模块化特性的高级玩法——圆角与裁剪组合使用一套配置同时搞定两种效果。SuperImageView 是什么Android 图片裁剪与圆角的一站式方案SuperImageView 本质上是一个增强版 ImageView核心类 SuperImageView.java 直接继承自AppCompatImageView因此在任何需要 ImageView 的地方都可以无缝替换。它的设计思路非常巧妙能力模块化。项目将功能拆分为两个独立模块superimageview-imagecrop图片裁剪模块负责按方向裁剪图片superimageview-roundedcorners图片圆角模块负责绘制圆角两个模块通过 Crop.java 和 RoundedCorners.java 两个接口与核心类解耦。也就是说裁剪和圆角既可以单独使用也可以同时叠加在一个 SuperImageView 上互不干扰——这正是「组合使用」的前提条件。图片裁剪8 个方向随心选告别单一 centerCrop普通 ImageView 只有centerCrop、fitXY等有限的缩放模式而 SuperImageView 的裁剪模块提供了多达8 种裁剪方向几乎覆盖了所有视觉需求顶部对齐topLeft、centerTop、topRight中部对齐centerLeft、centerRight底部对齐bottomLeft、centerBottom、bottomRight这 8 个方向的取值定义在裁剪模块的 attrs.xml 中而底层的坐标换算逻辑由 ImageTransformation.java 完成——它会根据图片尺寸与控件尺寸自动计算缩放矩阵和平移量开发者完全不需要手动算坐标。以上面的横向球体图片为例无论屏幕尺寸如何变化你都可以让图片精确地「贴」在控件的左侧、右侧或中间这在做菜单栏、横幅广告、卡片封面时特别实用。裁剪类型的枚举定义可以参考 CropType.java。图片圆角整体统一与四角独立两种模式任你选圆角模块同样功能齐全支持两种设置方式统一圆角通过siv_cornerRadius一个属性四个角同时生效独立圆角通过siv_cornerRadiusTopLeft、siv_cornerRadiusTopRight、siv_cornerRadiusBottomLeft、siv_cornerRadiusBottomRight四个属性分别控制每个角的弧度这意味着你既可以做出经典的「胶囊圆角」也可以只圆化左上角、右下角做出不对称的卡片质感。圆角的具体绘制实现位于 RoundedCornersImage.java它接管了 View 的绘制阶段性能开销极小。圆角 裁剪组合使用一段 XML 同时搞定两种效果了解了两个模块的独立用法之后重头戏来了——如何在同一张图片上同时实现裁剪和圆角由于 SuperImageView 是模块化设计组合使用非常简单只需在布局中把两个模块的实现类分别填入siv_cropImplementation和siv_roundedCornersImplementation两个属性即可com.codeforvictory.android.superimageview.SuperImageView xmlns:androidhttp://schemas.android.com/apk/res/android xmlns:apphttp://schemas.android.com/apk/res-auto android:idid/avatar android:layout_widthmatch_parent android:layout_height200dp android:srcdrawable/photo app:siv_cropImplementationcom.codeforvictory.android.superimageview.crop.CroppedImage app:siv_roundedCornersImplementationcom.codeforvictory.android.superimageview.roundedcorners.RoundedCornersImage /随后在裁剪模块的命名空间下配置裁剪方向在圆角模块的命名空间下配置圆角弧度组合效果即刻生效app:siv_cropcenterTop app:siv_cornerRadius16dp整个过程只需要配置几个属性无需编写任何 Java 代码。SuperImageView 内部会通过反射实例化对应的功能实现并在onDraw()阶段叠加绘制两个特性像积木一样严丝合缝地组合在一起。动态配置代码中也能自由切换裁剪方向与圆角除了 XML 静态配置SuperImageView 也支持运行时动态控制。通过getFeature()方法可以拿到已初始化的功能实例随时调整参数SuperImageView imageView findViewById(R.id.avatar); CroppedImage crop imageView.getFeature(CroppedImage.class); crop.setCropType(CropType.BOTTOM_LEFT); // 动态切换裁剪方向如果你在不同页面需要不同裁剪方向比如头像页用centerTop封面页用centerBottom这套动态配置机制能让同一份布局代码复用到底。组合使用的典型应用场景用户头像上方裁剪 全圆角秒变圆形头像卡片封面底部裁剪 顶部圆角营造沉浸式视觉轮播 Banner中部裁剪 统一圆角适配不同屏幕比例侧滑菜单左侧/右侧裁剪配合半透明圆角正是项目作者最初的灵感来源官方示例代码中也内置了这些玩法圆角示例见 RoundedCornerImagesActivity.java裁剪示例见 ImageCroppingActivity.java两个示例的布局文件中也展示了siv_cropImplementation与siv_roundedCornersImplementation的标准写法。结语SuperImageView 通过模块化的优雅设计把「图片裁剪」和「图片圆角」这两个高频需求变成了开箱即用的能力。学会圆角与裁剪组合使用你就能用极少的代码轻松实现复杂多样的图片展示效果。想亲手体验的话运行以下命令克隆项目跑一跑官方示例很快就能上手git clone https://gitcode.com/gh_mirrors/su/SuperImageView从今天起让图片效果不再是开发路上的绊脚石吧【免费下载链接】SuperImageViewCrop and Rounded Corners added to an ImageView.项目地址: https://gitcode.com/gh_mirrors/su/SuperImageView创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门