You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LibGDX中为TextButton添加背景色的更简便低成本实现方案

TextButton背景色优化方案

核心逻辑

全局复用一份1x1纯白色纹理,通过修改Drawable着色值实现任意颜色的纯色背景,完全避免频繁创建、销毁纹理带来的性能开销。

实现步骤

  • 全局仅初始化一次公共1x1白色纹理,放在应用资源初始化逻辑中执行:
// 全局复用资源,仅初始化1次
val whitePixmap = Pixmap(1, 1, Pixmap.Format.RGBA8888)
whitePixmap.setColor(1f, 1f, 1f, 1f)
whitePixmap.fill()
val globalWhiteTexture = Texture(whitePixmap)
whitePixmap.dispose()
val globalWhiteTexRegion = TextureRegion(globalWhiteTexture)
  • 需要修改TextButton背景色时,直接使用公共纹理生成Drawable并设置着色即可,无需重建任何纹理资源:
val bgDrawable = TextureRegionDrawable(globalWhiteTexRegion)
// 直接传入你需要的r/g/b/a值即可生成对应颜色背景
bgDrawable.setColor(r, g, b, a)

// 赋值给TextButton样式
val buttonStyle = textButton.getStyle.asInstanceOf[TextButton.TextButtonStyle]
buttonStyle.up = bgDrawable
// 如有需要可同步设置按下、禁用状态的背景色:buttonStyle.down / buttonStyle.disabled
textButton.setStyle(buttonStyle)

注意事项

全局创建的globalWhiteTexture需要在应用退出、资源释放阶段主动调用globalWhiteTexture.dispose()回收,避免显存泄漏。

内容的提问来源于stack exchange,提问作者Steven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 02:15:07