fbpx

Capturando o tamanho da tela do Dispositivo


Confira nessa postagem como capturar o tamanho da tela do dispositivo utilizando o RAD Studio 10.2 Tokyo.

Em um dos projetos que estou trabalhando precisei manter a imagem da logomarca ocupando um terço da altura da tela do dispositivo, independente de qual seja o dispositivo ou seu tamanho de tela. Isso causaria uma melhor distribuição dos componentes na tela, gerando uma melhor experiência para o usuário. E para minha grata surpresa o Firemonkey disponibiliza de forma extremamente simples.

TSize

A classe TSize chama o método GetScreenSize do serviço da plataforma IFMXScreenService, que retorna a altura e a largura da tela em pixels, de acordo com a orientação da tela do dispositivo, ou seja, se a orientação for Retrato,  então Altura >= Largura. Se a orientação for Paisagem, então Altura < Largura.

Obs.: Caso TSize não consiga recuperar as dimensões da tela, o retorno será 0 
tanto para Height quanto para Width.

 

Mãos a obra

Como requisito você precisa ter declarados os namespaces FMX.Forms, System.Types. A partir daí você declara uma variável do tipo TSize e atribui a ela o retorno da chamada da Screen.Size. Veja na prática como ficaria:

var:

TamanhoTela : TSize;

begin

...

TamanhoTela := Screen.Size;

Pronto, a partir daí você já tem carregado as propriedades de altura e largura, que são respectivamente:

TamanhoTela.cY e TamanhoTela.cX .

 

Exemplo

Como eu disse, no meu caso eu precisava que minha imagem de logomarca representasse 1/3 da altura da tela, o meu código ficou assim:

procedure TfrmHomeScreen.FormResize(Sender: TObject);
var
  TamanhoTela : TSize;
begin

  TamanhoTela := Screen.Size;
  ImageLogomarca.Height := Round(ScreenSize.cy * 0.33);

end;

Note que implementei a alteração do tamanho no evento OnResize do form, assim se a orientação de tela for alterada as informações serão recalculadas.

Confira aí o resultado e até a próxima!

 

Fonte: Embarcadero DocWiki – FMX.Forms.TScreen.Size

 

 

 

, ,

Comente