夜雨聆风学习资料网

ARTICLE · 1332018

图片变半透明、界面淡入淡出:App Inventor 新拓展「组件透明度」

图片变半透明、界面淡入淡出:App Inventor 新拓展「组件透明度」

👆 阅读之前记得关注+星标 ⭐️😄 每天才能第一时间接收到更新

摘要: App Inventor 的图像、标签、按钮、布局都只有「可见 / 不可见」两档,做不出半透明效果。新拓展「组件透明度」给任意组件加上 0~100 的透明度:滑动条实时调、开场渐显、水印叠字、精灵淡出,画布上的图像精灵和球也支持。两个方法,即插即用,老项目导入就能用。

图片只能显示或隐藏,半透明做不出来

用 App Inventor 做界面时有个老问题:图像、标签、按钮、布局这些组件没有透明度属性。「可见」就是完完整整显示,「不可见」就是彻底消失,中间那一档——半透明——原生做不出来。

可半透明恰恰是现代 App 里到处都是的效果:

• 图片淡淡地衬在背景上,文字透出来;

• 打开 App 时界面慢慢浮现,而不是生硬地蹦出来;

• 图片上叠一层水印文字;

• 游戏里精灵被击中后慢慢淡出,而不是瞬间消失。

画布画图的颜色倒是有 &HAARRGGBB 的透明度,但那只对画布自己的笔刷有效,图片和其它组件享受不到。

新拓展「组件透明度」就补上这一块:给任意可视组件设置、读取 0~100 的透明度(0 完全透明,100 不透明)。图像、标签、按钮、布局、画布都行,画布上的图像精灵和球也支持。拓展在设计器左侧的「拓展」面板导入 aix 就能用,体积只有 12KB,不改运行时,老项目、老伴侣、编译 APK 都兼容。

快速上手:拖一下滑动条,图片实时变透明

拖一个图像(随便配一张素材图片)、一个滑动条(MinValue 设 0、MaxValue 设 100)、一个按钮、一个标签,再导入拓展:

 

▲ 滑动条实时调透明度、读取当前值

拖滑动条,图片从透明到不透明实时变化;点按钮,标签显示图片当前的透明度数值。

「设置组件透明度」的取值范围是 0~100,传超出范围的数会自动截断,不用担心传错;「获取组件透明度」和它支持的组件范围一致,没设置过的组件读回 100。

开场渐显:配个计时器就是入场动画

透明度能用代码改,就能做动画。打开 App 先把图片设成全透明,再用计时器每次加一点,图片就慢慢浮现出来:

 

▲ 计时器渐显动画

每 30 毫秒加 3,大约一秒钟从全透明淡入到完整显示。把间隔调小、步长调大就是快闪,反过来就是慢悠悠地浮现。同样的写法也能倒着做「淡出」,退出页面前先把界面淡掉再切屏,观感立刻不一样。

 

▲ 渐显动画:透明度 12 / 50 / 100(示意图)

图像精灵和球也支持

画布上的图像精灵和球不是普通组件,但拓展同样搞定了——给精灵设透明度后自动触发画布重绘,不用自己再画一遍:

 

▲ 图像精灵隐身/现身

游戏里常见的「隐身」「残影」「被击中后淡出」,现在几块积木就能做。

 

▲ 水印叠字:内容上盖一层 16% 透明度的提示文字(示意图)

两个方法,一张表看全

方法
参数
作用
设置组件透明度
组件,透明度 0~100
0 完全透明,100 不透明,超出自动截断
获取组件透明度
组件
返回当前透明度,没设置过读回 100

方法能用在哪些组件上:

支持的组件
例子
普通可视组件
图像、标签、按钮、文本输入框、布局、画布
画布上的精灵
图像精灵、球
不支持的
时钟等不可见组件——会弹错误提示,不会崩溃

三个注意事项

事项
说明
透明度放最后设
图像精灵重新设置 Picture、球重新设置 PaintColor 后,透明度会被还原,先改图片颜色、最后设透明度
透明不等于消失
透明度设 0 后组件还占着原来的位置,要彻底移出布局得再配合可见性
没设过读回 100
「获取组件透明度」对没动过的组件返回 100(完全不透明)

下载

拓展 v1.0,最低支持 Android 4.0(API 14),aix 体积约 12KB,不需要任何权限。

文档与下载(含可直接运行的示例工程 TestComponentOpacity.aia):fun123.cn 文档站搜「组件透明度」,或直接访问 www.fun123.cn/reference/extensions/ComponentOpacity.html。


好了,是不是很简单,今天的分享就到此结束,咱们下回见;

如果觉得文章对你有帮助,记得点.赞.转.发.收.藏喔!

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料