Android:如何以编程方式设置XML维度变量

cap*_*com 8 layout android

在我的布局XML文件中,我通过一个名为的单独文件引用了很多参数dimens.xml.

例如,dimens.xml包含以下参数:

<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="margin_normal">5dp</dimen>
Run Code Online (Sandbox Code Playgroud)

main.xml例如,在我的内容中,我会TextView通过执行以下操作来设置文本大小:

android:textSize="@dimen/editTextSize_normal"
Run Code Online (Sandbox Code Playgroud)

它很棒.

现在,我的问题是,是否可以从我的主要活动以编程方式设置dimen我的dimen.xml文件中的变量值?我想要做的是获取屏幕尺寸,并设置,例如,textSize基于屏幕高度的一小部分,以便它可以很容易地适应任何屏幕尺寸.我已经弄明白了,我只需要你的帮助来弄清楚如何dimen在我的代码中设置变量.

Com*_*are 12

现在,我的问题是,是否可以通过我的主要活动以编程方式在dimen.xml文件中设置dimen变量的值?

没有.

我要做的是获取屏幕大小,并根据屏幕高度的一小部分设置textSize,以便它可以轻松适应任何屏幕大小.

忽略这是一种奇怪的UI方法,这样做的方法是删除android:textSize属性并使用setTextSize()Java 在运行时更改文本大小.

我已经弄明白了,我只需要你的帮助来弄清楚如何在我的代码中设置dimen变量.

你没有"设置维度变量".您可以通过设置器将计算应用于小部件setTextSize().


kri*_*ffz 7

不,您无法在运行时编辑Resources文件,它们已经编译和生成.

  • 您不能更改资源,但可以在Java代码中设置任何宽度或高度 - 因此在逻辑上覆盖它们. (2认同)