4
respostas

Ajuste dinâmico do tamanho da fonte

Gostaria de criar um pop-up no meu app que permitisse ao usuário ajustar dinamicamente o tamanho da fonte dos Textviews disponíveis no meu app, e gostaria de manter salva a opção feita pelo usuário. Como posso fazer isso?

4 respostas

Olá Lucas,

Não existe uma solução muito simples para esse problema. Você consegue alterar o tamanho de um TextView dinamicamente usando o método setTextSize(). Nesse caso, você pode fazer assim para alterar o tamanho:

TextView tv = (TextView) findViewById(R.id.campo_texto);
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);

Assim você poderia salvar a configuração do usuário em algum lugar e toda vez que fizesse um findViewById você precisaria alterar o tamanho programaticamente de acordo com o tamanho escolhido pelo usuário.

Entendi. Mas minha dúvida é justamente sobre como salvar e recuperar essa configuração em cada alteração que o usuário fizer. Andei lendo a documentação do Android sobre Settings, mas ainda estou um pouco confuso. Você tem algum exemplo que possa elucidar melhor a minha dúvida?

Olá Lucas,

Para salvar configurações simples como essa que você apresentou, geralmente utilizamos a classe SharedPreferences do próprio Android que representa um arquivo simples que consegue armazenar dados no formato chave/valor.

Para acessar o SharedPreferences você pode usar o código a seguir:

SharedPreferences prefs = context.getSharedPreferences("config", Context.MODE_PRIVATE);

Agora que você tem uma referência para o SharedPreferences, para gravar um valor você pode usar o código a seguir:

SharedPreferences.Editor editor = prefs.edit();
editor.putInt("tamanho", 16);
editor.commit();

Finalmente, para ler os valores salvos, você pode usar o código abaixo:

int tamanho = prefs.getInt("tamanho", 16);

Entendi. Uma outra dúvida: como eu faço para referenciar nos xmls de layout o valor salvo nas Configurações?