尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
3分钟上手android_maskable_layout:从JitPack集成到首个遮罩效果的快速入门教程
3分钟上手android_maskable_layout从JitPack集成到首个遮罩效果的快速入门教程【免费下载链接】android_maskable_layoutA library that easily allows you to mask layouts/viewgroups项目地址: https://gitcode.com/gh_mirrors/an/android_maskable_layout在Android开发中实现圆形头像、异形图片裁剪往往需要一堆Canvas、Bitmap代码。而 android_maskable_layout 这个轻量级开源遮罩库将这一切简化为几行XML配置——它基于FrameLayout封装可让任意View或ViewGroup轻松获得遮罩效果甚至支持动画遮罩。本文从JitPack集成开始带你3分钟完成首次遮罩效果。android_maskable_layout是什么一个让布局随意变身的遮罩神器 Android原生的ImageView只支持圆形裁剪想要星形、文字镂空等异形效果就得自己写自定义View。android_maskable_layout 正是为此而生核心是一个继承自FrameLayout的 MaskableFrameLayout.java你只需把它当作普通容器使用并指定一个遮罩图片子View就会被雕刻成想要的形状。它的核心能力包括 任意Drawable遮罩圆形、星形、甚至是你的Logo图片全都能当遮罩 动画遮罩支持AnimationDrawable让遮罩活起来 18种PorterDuff混合模式DST_IN、SRC_IN、MULTIPLY、XOR等随意切换 极致轻量整个库只有一个核心类无多余依赖上图是官方演示动画第一张是未加遮罩的原图第二、三张分别是圆形和星形遮罩效果最后一张则是动画遮罩点击press me按钮后遮罩会流动起来非常炫酷。第一步JitPack集成只需两步配置 ⚙️android_maskable_layout 通过 JitPack 发布集成过程比Maven Central更简单整个配置只有两步① 在项目根目录的 build.gradle 中添加 JitPack 仓库allprojects { repositories { maven { url https://jitpack.io } } }② 在模块的 build.gradle 中添加依赖dependencies { implementation com.github.christophesmet:android_maskable_layout:v1.3.1 }同步一下Gradle集成就完成了。如果你用的是新版Android Studiosettings.gradle 中使用 dependencyResolutionManagement只需把上面的 maven 仓库地址加到 repositories 中原理完全相同。第二步3分钟写出你的第一个遮罩效果圆形头像集成完成后马上来做最经典的需求——圆形头像。只需要把原来的 ImageView 换成 MaskableFrameLayout 容器再指定一个圆形遮罩即可com.christophesmet.android.views.maskableframelayout.MaskableFrameLayout android:layout_width80dp android:layout_height80dp app:porterduffxfermodeDST_IN app:maskdrawable/masking_masking_01 ImageView android:layout_widthmatch_parent android:layout_heightmatch_parent android:scaleTypecenterCrop android:srcdrawable/unicorn/ /com.christophesmet.android.views.maskableframelayout.MaskableFrameLayout是不是非常简单核心就两个自定义属性完整定义见 attrs_maskable_framelayout.xmlapp:mask遮罩图片示例中的masking_masking_01是一张黑色实心圆形图app:porterduffxfermode混合模式DST_IN表示保留遮罩形状内的内容是最常用的模式把mask换成masking_masking_20五角星圆形头像瞬间变成星形头像一行代码都不用改完整的示例布局可查看 activity_main.xml。进阶玩法让遮罩动起来 切换混合模式 静态遮罩只是开胃菜android_maskable_layout 真正亮眼的是动画遮罩。项目示例中的 animation_mask.xml 是一个包含60帧的 animation-listanimation-list xmlns:androidhttp://schemas.android.com/apk/res/android android:oneshottrue item android:drawabledrawable/masking_masking_01 android:duration18/ !-- 中间省略58帧 -- item android:drawabledrawable/masking_masking_60 android:duration18/ /animation-list把它作为app:mask传入再像官方示例 MainActivity.java 那样在代码中启动动画遮罩就会流动起来AnimationDrawable anim (AnimationDrawable) mMaskableFrameLayout.getDrawableMask(); anim.start();此外你还可以在代码中动态更换遮罩或混合模式适合做水波纹、闪光扫过等高级特效maskableFrameLayout.setMask(R.drawable.masking_masking_20); // 动态换遮罩 maskableFrameLayout.setPorterDuffXferMode(PorterDuff.Mode.XOR); // 动态换模式18种PorterDuff模式全部支持覆盖ADD、CLEAR、MULTIPLY、SCREEN、XOR等足以满足绝大多数创意需求。常见问题为什么我的遮罩没生效新手最容易踩的坑这里帮你提前排掉问题解决方案遮罩完全不显示确认mask属性已设置且布局宽高大于0wrap_content且无子View时无法生成遮罩出现黑色块检查遮罩图片是否为黑白图建议使用黑色实心形状效果与预期不符检查porterduffxfermode大多数人想要的是DST_IN边缘锯齿明显在XML中添加app:anti_aliasingtrue开启抗锯齿会有轻微性能开销结语3分钟你也可以拥有炫酷的遮罩效果 从JitPack集成到圆形头像再到动画遮罩整个流程不过3分钟。android_maskable_layout 把复杂的Bitmap运算封装成直观的XML属性让遮罩效果变得人人都能用。想亲自运行官方Demo体验效果克隆仓库 https://gitcode.com/gh_mirrors/an/android_maskable_layout 即可Sample 模块就是现成的示例工程。快去试试吧【免费下载链接】android_maskable_layoutA library that easily allows you to mask layouts/viewgroups项目地址: https://gitcode.com/gh_mirrors/an/android_maskable_layout创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

打造专属配色:Dracula PowerShell Console自定义颜色完全指南(附完整色值对照表)

打造专属配色:Dracula PowerShell Console自定义颜色完全指南(附完整色值对照表)

打造专属配色:Dracula PowerShell Console自定义颜色完全指南(附完整色值对照表) 【免费下载链接】powershell 🧛🏻‍♂️ Dark theme for PowerShell and cmd.exe 项目地址: https://gitcode.com/gh_mirrors/powers…

📅 2026/9/8 13:56:53
FastCSV 3.x 升级 4.x 完整指南:10 个破坏性变更逐个击破

FastCSV 3.x 升级 4.x 完整指南:10 个破坏性变更逐个击破

FastCSV 3.x 升级 4.x 完整指南:10 个破坏性变更逐个击破 【免费下载链接】FastCSV Fast, lightweight, and RFC 4180 compliant CSV library for Java. Zero dependencies, ~90 KiB. Trusted by Apache NiFi, JUnit, and Neo4j. 项目地址: https://gitcode.com/g…

📅 2026/9/19 7:57:01
为什么选reference-apps?3个理由告诉你如何系统学习Apache Spark

为什么选reference-apps?3个理由告诉你如何系统学习Apache Spark

为什么选reference-apps?3个理由告诉你如何系统学习Apache Spark 【免费下载链接】reference-apps Spark reference applications 项目地址: https://gitcode.com/gh_mirrors/re/reference-apps 想要系统学习Apache Spark,很多人卡在了"API文…

📅 2026/9/11 11:14:39
MORE NEWS

更多资讯

📰

OpenClaw 2.7.9 网关频繁离线排查手册:从部署流程到 TaoToken 统一 Key 接入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

听懂芯片内部的‘悄悄话’:信号完整性与电源完整性实战指南

1. 项目概述:这根本不是讲“沙子怎么变成芯片”的科普课“从沙子到车辙(4.1):芯片内部的‘悄悄话’”——这个标题乍看像一堂中学化学交通工程的跨界公开课,但实际它精准锚定了当前半导体领域最隐蔽、也最常被公众忽略…

📰

2026年大模型学习路线全景图:微调、部署与Agent实战指南

一转眼到了2026年,大模型早已从实验室里的新鲜名词,变成了几乎所有技术人都要面对的日常基础设施。围绕AI的工具、框架和学习路线也跟着疯狂膨胀,GitHub上每天新增十几个项目,各种“三天入门大模型”的课程更是铺天盖地。这个领域…

📰

嵌入式偶发Bug排查:换机、录屏、批次对照三板斧

1. 偶发 bug 到底怎么治?先认清它的脾气做嵌入式开发和硬件调试的人,应该都经历过这种让人抓狂的场景:代码逻辑看了无数遍,自认为天衣无缝,偏偏设备时不时抽风一下。串口数据偶尔乱码,蓝牙连接用着用着突然…

📰

Kimi-K2-Instruct-0905 开源模型实测:用 TaoToken 统一 Key 跑通推理与工具调用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

国内爽用 Claude Code + Codex 完全指南:终端 AI 编程双雄,效率翻倍实战手册|TaoToken 统一 Key 接入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬