Android浮点/双资源types

正如我从可用的Android资源types了解,没有直接的方式来使用浮点值作为资源,除非你使用一些黑客,如在这里提到的一个。 有没有什么约定呢?

Solutions Collecting From Web of "Android浮点/双资源types"

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

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

1)在dimens.xml中

<item name="float" type="dimen" format="float">9.52</item> 

从Java引用

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

第二,就像Bojan和Haresh所build议的那样,要将值用作string,并在runTime中将其parsing为代码。

只需将你的double保存为一个String资源

 <string name="some_decimal">0.12154646</string> 

然后在你的代码中parsing这个

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

你也可以创build你自己的资源types,并从这里获取它

 <item name="some_decimal" type="vals" format="float">2.0</item> 

然后像这样得到它

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

但是不可能像这样得到双打,而且我认为这不仅仅是简单地parsing一个string资源,所以我更喜欢我的第一个选项。