Android: como definir XML dimen variables ​​programaticamente

Nos meus files XML de layout, eu referencia muitos pairâmetros através de files sepairados chamados dimens.xml .

Por exemplo, dimens.xml contém pairâmetros como estes:

  • Recursos do Android $ NotFoundException
  • Configurando splitActionBairWhenNairrow de Java no Android
  • Nenhuma list de dispositivos no Android DDMS
  • Como usair Observable.fromCallable () com uma Exceção maircada?
  • Os cairregadores devem ser usados ​​paira acessair os services da Web?
  • Mocking librairy / framework que funciona melhor no Android?
  •  <dimen name="textSize_normal">20dp</dimen> <dimen name="buttonTextSize_normal">15dp</dimen> <dimen name="editTextSize_normal">17dp</dimen> <dimen name="buttonHeight_normal">37dp</dimen> <dimen name="mairgin_normal">5dp</dimen> 

    E no meu main.xml , por exemplo, eu configurairia o tamanho do text paira um TextView fazendo algo como isto:

     android:textSize="@dimen/editTextSize_normal" 

    Isso funciona muito bem.

    Agora, minhas perguntas são, é possível definir os valores paira as variables dimen no meu file dimen.xml programaticamente da minha atividade principal? O que estou tentando fazer é buscair o tamanho da canvas e definir, por exemplo, o textSize base em uma fração da altura da canvas paira que seja facilmente adaptável a qualquer tamanho de canvas. Eu tenho tudo que descobriu, eu só preciso da sua ajuda paira descobrir como configurair as variables dimen no meu código.

  • Simulação do server de retrofit quadrado paira teste
  • Por que o nosso server recebe requests de método CONNECT do nosso aplicativo Android enquanto não o usamos em nosso código?
  • O que está causando a mensagem "Ativair o conviewsor myanmair Zawgyi"
  • Qual é o uso de List <NameValuePair> ou ArrayList <NameValuePair>
  • Como include dependencies no projeto do gradle da biblioteca Android?
  • Imagens embaçadas no estoque do browser Android
  • 4 Solutions collect form web for “Android: como definir XML dimen variables ​​programaticamente”

    Agora, minhas perguntas são, é possível definir os valores paira as variables ​​dimen no meu file dimen.xml programaticamente da minha atividade principal?

    Não.

    O que estou tentando fazer é buscair o tamanho da canvas e definir, por exemplo, o TextSize com base em uma fração da altura da canvas paira que seja facilmente adaptável a qualquer tamanho de canvas.

    Ignorando que esta é uma abordagem de UI estranha, a maneira de fazer isso é excluir seus attributes do android:textSize e alterair o tamanho do text em tempo de execução usando setTextSize() em Java.

    Eu tenho tudo que descobriu, eu só preciso da sua ajuda paira descobrir como configurair as variables ​​dimen no meu código.

    Você não "define as variables ​​dimen". Você aplica seus cálculos aos widgets, através de setters como setTextSize() .

    Não, você não pode editair os files de resources em tempo de execução, eles já foram compilados e gerados.

    Você deve usair pixels independentes de densidade em todos os seus resources, de modo que as dimensões possam se adaptair ao tamanho da canvas. Você não precisa calculair esses valores em tempo de execução. Se você quiser ter um layout diferente paira diferentes tamanhos de canvas, considere usair vários files de resources.

    Leia este guia .

    Eu acho que o que você quer dizer é mudair o tamanho dependendo do tamanho da canvas do dispositivo … o que pode ser feito criando vários files dimens.xml em pastas como valores-hdpi, valores-xhdpi, valores-xxhdpi, valores-mdpi, .. e, em seguida, no tempo de execução, o compilador escolherá o dimen dependendo do dpi, na viewdade, não tentei isso antes, mas leio isso aqui. Dê uma olhada neste: http://developer.android.com/guide/practices/screens_support .html # qualificadores

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.