Kivy - Métricas e interfaces adaptativas
Nesse vídeo vamos aprender a criar interfaces que se adaptam às características da tela do dispositivo. Vamos aprender sobre as métricas do kivy, como utilizá-las e algumas outras dicas :)
Para criar interfaces que se adaptem, precisamos estabelecer a maneira que os elementos gráficos serão dispostos escalados conforme a tela em que estamos rodando o código.
É possível estabelecer diversos critérios, mas vou focar nos que acho mais úteis: proporcionalidade, size_hints e tamanho físico.
Tamanhos proporcionais
Os tamanhos dos Widgets podem ser estabelecidos de forma proporcional ao tamanho da tela, para isso utilizamos a referência de um widget do tamanho da tela. Se você está utilizando o ScreenManager, uma boa referência é o 'root' da tela:
# arquivo.kv
size_hint:None,None
height:root.height*0.1 # 10% da altura do root
width:root.width*0.2 # 20% da largura do root
Size_hints
Outra maneira de realizar um ajuste proporcional é utilizando o size_hint. A vantagem é que a constante de proporcionalidade vai levar em conta o número de widgets na tela.
Tamanho físico
Outra maneira possível é utilizando as métricas do Kivy. As métricas disponíveis são: dp, sp, mm, cm, in e pt.
A idéia das métricas é estabelecer unidades equivalentes entre as diferentes telas. Por exempo, se usarmos '5mm', o Kivy calculará quandos pixels são necessários para que o widget tenha 5mm de tamanho, independentemente da tela em que está rodando.
A unidade 'dp' é similar a estas unidades físicas, só que são consideradas as classes de telas e, por isso, podem não equivaler exatamente as medidas físicas. Mas elas serão bem próximas, é somente uma questão de arredondamento. Ela é como se fosse a unidade pixel só que independente da densidade de pixels da tela.
A unidade 'sp' é como se fosse a 'dp', só que ela escala essa medida dependendo das preferências do usuário no sistema. Por exemplo, ela será maior se você aumentou a fonte do seu sistema. Isso é ótimo para que o aplicativo se adapte às preferências de tamanho do usuário.
No vídeo eu demonstro como utilizar essas medidas e algumas outras dicas, confira! :)
Faça o download dos arquivos desta aula aqui.