如何从xml文件中获取价值并在android studio中以编程方式使用它

时间:2019-04-08 18:11:24

标签: android xml

我正在android studio中的一个项目上工作,我的应用程序包含很多Text_Views,并且根据用户的选择,我的应用程序将显示那些Text_Views,有时它需要一次显示全部,而在其他时候只显示它们其中一些

在显示整个Text_Views的情况下,我的应用应减小Text_Views的大小,并在增大其大小的情况下 所以  我的目的是获取XML文件中已经设置的dimens值,以便以编程方式在Java代码中使用它们 剩下要做的唯一一件事就是根据用户选择的内容为每个选择的大小选择合适的大小

我尝试过从XML文件中获取值:

int val = R.dimens.<name of the size>

但是它给我的价值与XML文件中分配的价值完全不同

xml文件中的文本代码

 <dimen name="text_size">12sp</dimen>

int val = R.dimens.text_size;

我希望这会给我与xml文件中设置的值相同的值,但事实并非如此,它给了我一个与我在xml文件中写的内容相去甚远的随机数

希望您能帮到我

打招呼

1 个答案:

答案 0 :(得分:0)

使用此:

int valueInPixels = (int) getResources().getDimension(R.dimens.text_size)

但是,请注意,您将根据电话密度获得价值,以将原始价值除以DisplayMetrics密度即可得到该价值:

int dp = (int) (getResources().getDimension(R.dimens.text_size) / getResources().getDisplayMetrics().density)