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

在我的布局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> 

而在我的main.xml ,例如,我将通过执行如下操作来设置TextView的文本大小:

 android:textSize="@dimen/editTextSize_normal" 

它工作很好。

现在,我的问题是,是否有可能从我的主要活动中以编程方式在我的dimen.xml文件中设置dimen.xmlvariables的值? 我想要做的是获取屏幕大小,并根据屏幕高度的一小部分设置,例如textSize ,以便它很容易适应任何屏幕大小。 我已经想通了,我只需要你的帮助,弄清楚如何在我的代码中设置dimenvariables。

Solutions Collecting From Web of "Android:如何以编程方式设置XML维度variables"

现在,我的问题是,是否有可能从我的主要活动中以编程方式在我的dimen.xml文件中设置维variables的值?

没有。

我想要做的是获取屏幕大小,并根据屏幕高度的一小部分设置,例如textSize,以便它很容易适应任何屏幕大小。

忽略这是一种奇怪的UI方法,要做到这一点的方法是删除你的android:textSize属性,并使用Java中的setTextSize()在运行时改变文本大小。

我已经想通了,我只需要你的帮助,弄清楚如何在我的代码中设置维的variables。

你不“设置维数variables”。 您可以通过像setTextSize()这样的setter将您的计算应用到窗口小部件。

不,您不能在运行时编辑资源文件,它们已经被编译和生成。

您应该在所有资源中使用与密度无关的像素,以便维度可以适应屏幕大小。 您不需要在运行时计算该值。 如果您想针对不同的屏幕尺寸有不同的布局,请考虑使用多个资源文件。

阅读本指南 。

我想你的意思是改变大小取决于设备的屏幕大小..这可以通过创build多个dimens.xml文件在文件夹中,如值-HDPI,值-XHDPI,值-XXHDPI,值-MDPI,..然后在运行时,编译器会根据dpiselect维度,我实际上没有尝试过,但我在这里阅读..看看这个: http : //developer.android.com/guide/practices/screens_support的.html#预选赛