Android float / double资源types

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

  • TextView是否缩放其字体大小以填充父级?
  • RadioButton作为平面按钮?
  • 如何查看发送到Android应用程序的Firebase消息的发送状态?
  • Android ActionBar选项卡颜色
  • 在Eclipse IDE中添加gcm.jar(Google Cloud Messaging)
  • 条形码扫描仪API
  • 从活动中启动服务
  • 从android连接到sql server
  • 不,没有为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(); 

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