ComponentOpacity 拓展:给任意组件设置、获取透明度

« 返回首页

logo ComponentOpacity 拓展

App Inventor 原生没有组件透明度属性:图像、标签、布局这些组件只能完全显示 (可见)或完全隐藏(不可见),中间的半透明状态做不出来。本拓展补上这一个功能: 给任意可视组件设置、获取透明度 0~100(0 完全透明,100 不透明)。

  • 支持图像、标签、按钮、布局、画布等可视组件
  • 画布上的图像精灵和球同样支持
  • 单个功能,即插即用

典型用法:滑动条实时淡入淡出图片、入场动画式的界面渐显、叠加水印式提示文字。

when 滑动条1.PositionChanged(thumbPosition) {
  ComponentOpacity1.SetComponentOpacity(图像1, thumbPosition)
}
when 按钮1.Click() {
  标签1.Text = join("当前透明度:", ComponentOpacity1.GetComponentOpacity(图像1))
}
when 按钮2.Click() {
  ComponentOpacity1.SetComponentOpacity(标签1, 30)
}

(图像1 的 Picture 随便配一张素材即可;滑动条 MinValue 0、MaxValue 100。)

方法

SetComponentOpacity(component, opacity)
给组件设置透明度:0 完全透明 ~ 100 不透明。图像、标签、按钮、布局、画布等可视组件直接生效;画布上的图像精灵和球同样支持。注意:图像精灵重新设置 Picture 属性、球重新设置 PaintColor 属性后,透明度会被还原,请在最后设置透明度。
GetComponentOpacity(component)
获取组件当前透明度(0 完全透明 ~ 100 不透明)。与 SetComponentOpacity 支持的组件范围一致;图像精灵重新设置 Picture、球重新设置 PaintColor 后会读回 100。

注意事项

  • 没设置过的组件读回 100(完全不透明)
  • 传了不可见组件(如时钟)或空组件会弹错误提示,不会崩溃
  • 想做「淡出后不占位置」,透明度设 0 后组件仍在原处占位,需要再配合可见性/布局调整

拓展下载

cn.fun123.ComponentOpacity.aix

案例下载

上面的示例就是一份可直接运行的完整工程(含拓展、示例图片与全部代码块):

TestComponentOpacity.aia

文档反馈