在我的布局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
文件中dimen.xml
个变量的值?我要做的是获取屏幕大小,并根据屏幕高度的一小部分设置textSize
,以便它可以轻松适应任何屏幕大小。我已经弄明白了,我只需要你的帮助来弄清楚如何在我的代码中设置dimen
变量。
答案 0 :(得分:12)
现在,我的问题是,是否可以通过我的主要活动以编程方式在dimen.xml文件中设置dimen变量的值?
没有
我要做的是获取屏幕尺寸,并根据屏幕高度的一小部分设置textSize,以便它可以轻松适应任何屏幕尺寸。
忽略这是一种奇怪的UI方法,这样做的方法是删除android:textSize
属性并使用Java中的setTextSize()
在运行时更改文本大小。
我已经弄明白了,我只需要你的帮助来弄清楚如何在我的代码中设置dimen变量。
你没有设置维度变量&#34;。您可以通过setTextSize()
等设置器将计算应用于小部件。
答案 1 :(得分:7)
不,您无法在运行时编辑Resources文件,它们已经编译和生成。
答案 2 :(得分:1)
您应该在所有资源中使用与密度无关的像素,以便尺寸可以适应屏幕尺寸。您不需要在运行时计算这些值。如果您希望针对不同的屏幕尺寸使用不同的布局,请考虑使用多个资源文件。
阅读this guide。
答案 3 :(得分:1)
我想你的意思是根据设备的屏幕尺寸改变尺寸。 这可以通过在文件夹中创建多个dimens.xml文件来实现,例如values-hdpi,values-xhdpi,values-xxhdpi,values-mdpi,..然后在运行时,编译器将根据dpi选择维度 我实际上之前没试过,但我读了它 在这里..看看这个: http://developer.android.com/guide/practices/screens_support.html#qualifiers