Android float / double资源types

正如我从可用的Android资源types中理解的那样,除非你使用像这里提到的一些黑客,否则没有直接的方法将浮点值用作资源。 对此有什么约定吗?

不,没有为float / double提供直接资源types。

但是,有两个黑客可以做到这一点。

1)在dimens.xml中

9.52 

从java引用

 TypedValue typedValue = new TypedValue(); getResources().getValue(R.dimen.my_float_value, typedValue, true); float myFloatValue = typedValue.getFloat(); 

第二个是Bojan和Haresh建议的,要将值用作字符串并在runTime中解析它的代码。

只需将double保存为String资源即可

 0.12154646 

然后只需在你的代码中解析它

 double some_decimal = Double.parseDouble(context.getString(R.string.some_decimal)); 

您也可以创建自己的资源值types并从中获取它

 2.0 

然后像这样得到它

 TypedValue tempVal = new TypedValue(); getResources().getValue(R.vals.some_decimal, tempVal, true); float some_decimal = tempVal.getFloat(); 

但是这样的双打是不可能的,而且我认为它不仅仅是解析一个字符串资源,所以我更喜欢我的第一个选项。