Android float / double资源types

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

  • 如何在你的代码中支持多个android版本?
  • 获取大量数据,最好的方法是什么?
  • 如何防止CheckBox被检查?
  • Android:在选择子项时创建父选择器触发器
  • Android studio的AppcompatActivity错误
  • 使用apktool反编译apk文件
  • Firebase邀请发送邀请,但尚未收到
  • 为什么Android Studio不允许我创建Java类?
  • 不,没有为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(); 

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