我如何做类似iPhone按钮的填充

时间:2009-10-08 19:00:27

标签: algorithm delphi graphics fill

我想修改我使用的一些用户控件,并认为一些有吸引力的填充应该完成这项工作(也许是其中的一部分)。就像填充iPhone按钮或Office 2007功能区栏的背景一样(也许你还知道更多)。

修改 为了清理,我不需要简单的渐变填充 - 有一个Windows API调用。我对如何实现整个效果更感兴趣。这是一个link to an article,它展示了如何在PhotoShop中完成它,但我希望在代码中实现它。

具体而言,顶部的光泽渐变以大致位于按钮中间的曲线结束。我一半期望这需要单独渲染并以某种方式混合。

有什么想法吗?

4 个答案:

答案 0 :(得分:4)

“玻璃”效果只需通过创建一个大于高4倍的白色椭圆,将其放在图像上进行“玻璃化”,使底部弧线在图像上居中,然后进行Alpha混合。我相信这个示例delphi code将有助于执行最后一部分。

答案 1 :(得分:3)

你在谈论渐变填充。您可以开始使用一些代码示例here - 在该页面中搜索“渐变”以查找相关部分。

答案 2 :(得分:2)

您可以尝试http://www.tmssoftware.com/site/advsmoothbutton.asp。据我所知,这个控件包含在带有D2009的免费Smooth Controls包中。对于其他Delphi版本,您可以购买TAdvSmoothButton控件本身或作为控件包的一部分。

答案 3 :(得分:1)

最简单的方法可能是根据按钮大小组合图像。创建一个基本图像,并在其上面调整一些图层的大小,而不是尝试以程序方式生成复杂的渐变。