【问题标题】:Easy way to change Firemonkey button pressed color on Android在 Android 上更改 Firemonkey 按钮按下颜色的简单方法
【发布时间】:2015-04-21 16:24:56
【问题描述】:

这可能是令人头疼的问题之一,但我想做的是让我的按钮在按下时显示为橙色 (xFFFCB447),就像 Android 对话框一样。 (例如选择列表)

默认样式中似乎没有特定的“按下”TRectangle,并且我添加了不同的 TRectangle(适当着色似乎也没有这样做),所以我唯一的选择似乎是使用 Bitmap样式设计器导出 style.png;希望我在明天下午之前弄清楚图像的哪一部分用于按下的按钮,然后再次更新图像。

没有更简单/更快的方法吗?

【问题讨论】:

    标签: android delphi button firemonkey delphi-xe7


    【解决方案1】:

    选项 A)在您的按钮上放置一个 TRectangle。设置它的对齐到内容。将其填充颜色设置为橙色。将其不透明度设置为 0.50。将其 HitTest 设置为 False。将它的可见设置为 False。在 TButton.OnMouseDown 中将 TRectangle Visible 设置为 True。在 TButton.OnMouseUp 中将 TRectangle Visible 设置为 False。您还需要设置 TButton 所在控件的 OnMouseMove 以将 TRectangle Visible 设置为 False,因此如果您按下鼠标然后移开,它也会被隐藏。

    选项 B) 在 TButton 上放置一个 TFillRGBEffect。将其设置为橙色。执行与上述相同的操作以启用和禁用鼠标向下和向上的效果。但是,请注意 TFillRGBEffect 可能比 TRectangle 方式慢。

    选项 C) 只需使用 TRectangle 而不是 TButton。在其中放置一个 TText 或 TLabel 用于文本并与内容对齐。在 OnMouseDown 和 OnMouseUp 中更改它的填充颜色。

    【讨论】:

    • 不错。谢谢。好的,为什么即使颜色以 $FF 开头并且不透明度设置为 1,矩形也会显示为半透明(显示底层面板标签)?
    • 您是否更改了 TRectangle 父级的不透明度?
    • 没有。一切都是 Opacity=1,但它是半透明的。 .style 文件中是否存在导致这种情况发生的全局设置?
    • TRectangle 的样式不是我所知道的。 TRectangle 在我的任何应用程序中都不是半透明的,除非我设置属性使其如此。
    • 我的错误。我在按钮上设置了 TintColor - 当然,色调是半透明的,而不是不透明的。
    猜你喜欢
    • 1970-01-01
    • 2015-04-03
    • 2017-06-11
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多