• 0
Brovin Yaroslav

[Android] Не получается увеличить высоту TProgressBar

Вопросы

Добрый вечер
 
Не получается увеличить высоту TProgressBar в Delphi XE5 при разработке под Android, однако при создании приложения для Windows все изменяется.
  1. Так и должно быть или у меня что-то нет так?
  2. Посоветуйте как исправить.

// Не увеличивается ширина ProgressBar'a (Delphi XE5 разработка под Android)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 ответа на этот вопрос

  • 0

По умолчанию, каждая платформа определяет свои правила оформления пользовательского интерфейса, согласно Руководству пользовательского интерфейса Андроида TProgressBar не может быть по высоте другого размера. Поэтому стиль андроид платформы в Firemonkey запрещает изменять высоту некоторых контролов, в том числе TProgressBar. Аналогичная ситуация в Eclipse для андроида. Там также нельзя менять для этого компонента его высоту.

 

Фиксация размера происходит путем сохранения в стиле свойств FixedHeight  и FixedWidth (не доступного в дизайнере). Если эти свойства больше 0, значит контрол будет иметь фиксированный размер.

 

Решение

Если вы вдруг захотели нарушить стандарты, рекомендованные Google по оформлению UI, вы можете сделать следующее:

1. Открыть BitmapStyleDesigner (находится в папке bin студии bin\BitmapStyleDesigner.exe)

 

2. В выпадающем списке первой кнопки на панели инструментов Создать новый стиль (светлый или темный) для платформы андроид. Редактор автоматически создаст вам стандартный стиль для андроида.

post-1-0-39079200-1389973679_thumb.jpg

 

3. Сохранить стиль для Firemonkey. В диалоге сохранения выбрать тип файла "FireMonkey Style (*.style)"

post-1-0-88983200-1389973927.jpg

 

4. Открыть сохраненный файл стиля в текстовом редакторе и найти в нем стиль TProgressBar - "progressbarstyle".

post-1-0-78011200-1389974022.jpg

 

5. Удалить из стиля строчку:

FixedHeight = 10

6. Сохранить стиль и загрузить файл стиля в TStyleBook.

post-1-0-67130300-1389974141.jpg

 

Теперь для TProgressBar можно менять высоту. Однако, учтите, что стили для Андроид и iOS растровые. Это значит, что при растровое исходное изображение прогресс бара рассчитано на высоту в 10 пикселей и при увеличении высоты, вы потеряете качество отрисовки прогресс бара (смотрите рисунок выше).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

В новой версии студии RAD Studio Berline, дизайнер стилей TStyleBook теперь показывает эти два свойства для каждого стилевого компонента.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Похожий контент

    • От VDK
      Собственно не работает следующий код
      IF (Opponent.Position.X + PosY) <> (Hero.Position.X + PosX ) then begin if (Opponent.Position.X + PosY) > (Hero.Position.X + PosX)then Opponent.Position.X:=Opponent.Position.X - PosY * 0.01; if (Opponent.Position.X + PosY) < (Hero.Position.X + PosX)then Opponent.Position.X:=Opponent.Position.X + PosY * 0.01; end else HPIndicator.Value:= HPIndicator.Value - 10; Однако, если сделать вот так:
      IF (Opponent.Position.X + PosY) <> (Hero.Position.X + PosX ) then begin if (Opponent.Position.X + PosY) > (Hero.Position.X + PosX)then Opponent.Position.X:=Opponent.Position.X - PosY * 0.01; if (Opponent.Position.X + PosY) < (Hero.Position.X + PosX)then Opponent.Position.X:=Opponent.Position.X + PosY * 0.01; HPIndicator.Value:= HPIndicator.Value - 10; end то все прекрасно работает. В чем подвох?
    • От brunnengi
      Здравствуйте.
       
      Подскажите пожалуйста как сделать правильно.
      По нажатию на Button происходит запрос к серверу. Сейчас я делаю запрос вызывая отдельный поток. А на время выполнения показываю просто layout на весь экран с вращающимся AniIndicator. Правильно ли вообще делать это в отдельном потоке и если нет, то как правильно, подскажите плз.
      И нормально ли выводить отдельный layout с индикатором, или же стоит использовать какое нибудь системное окошко со значком ожидания? Если системное, то как его вызвать? 
    • От estra
      Почему при разработке Mobile Application высота GroupBox не меняется?
    • От estra
      Можно ли изменить цвет TProgressBar?
    • От antarey
      Подскажите, если можно с картинками, как поменять цвет выделенного итема в ListBox для андроид стиля
      Спасибо
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу