Как сделать заполнение в виде кнопки на iPhone - PullRequest
2 голосов
/ 08 октября 2009

Я бы хотел украсить некоторые пользовательские элементы управления, которые я использую, и подумал, что некоторые привлекательные заливки должны выполнять эту работу (возможно, часть этого). Например, заливка фона кнопок iPhone или полоска ленты Office 2007 (возможно, вы знаете еще несколько).

Edit: Чтобы прояснить ситуацию, мне не нужна простая градиентная заливка - для этого есть вызов Windows API. Меня больше интересует, как весь эффект достигается. Вот ссылка на статью , в которой показано, как это сделать в PhotoShop, но я хочу сделать это в коде.

В частности, глянцевый градиент вверху заканчивается кривой примерно посередине кнопки. Я наполовину ожидаю, что это нужно будет визуализировать отдельно и как-то смешать.

Есть идеи?

Ответы [ 4 ]

4 голосов
/ 09 октября 2009

Эффект «стекла» создается простым созданием белого эллипса, примерно в 4 раза превышающего его высоту, размещая его над изображением так, чтобы оно было «застекленным» так, чтобы нижняя дуга центрировалась на изображении, а затем альфа-смешивалась. Я считаю, что этот пример delphi code поможет вам выполнить последнюю часть.

3 голосов
/ 08 октября 2009

Вы говорите о градиентных заливках. Вы можете получить несколько примеров кода здесь для начала - найдите на этой странице «градиент», чтобы найти соответствующие разделы.

2 голосов
/ 09 октября 2009

Вы можете попробовать http://www.tmssoftware.com/site/advsmoothbutton.asp. Насколько я знаю, этот элемент управления включен в бесплатный пакет Smooth Controls с D2009. Для других версий Delphi вы можете купить сам элемент управления TAdvSmoothButton или его часть.

1 голос
/ 09 октября 2009

Самый простой способ сделать это, вероятно, путем сборки изображений в зависимости от размера кнопки. Создайте базовое изображение и измените размеры некоторых слоев поверх него, вместо того чтобы пытаться процедурно генерировать сложный градиент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...