在资源文件夹中存储小数

时间:2014-05-21 20:49:34

标签: java android android-xml android-resources

我的代码的一个要求是使用alpha值。我想编写我的应用程序,以便在将来的某个时候,我可以轻松地更改此值。

我的理解是资源是专门为此目的而建的。 Alpha需要介于0和1之间。

我想知道是否有更优雅的解决方案,而不是在整数资源文件夹中将值设置为1到100之间的整数,然后在代码中除以100。

当前代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>    
<!-- choose a value for alpha, it will be divided by 100. 
valid values lie between 0 and 100.-->
<item name = "exponential_filter_alpha" format="">9</item>    
</resources>

我在这里看到了类似的问题:https://stackoverflow.com/a/8780360/1014849 但这需要花车,通过这种方法无法获得双打。

3 个答案:

答案 0 :(得分:1)

有一个整数资源。见这里:Resource Types - More Types。然后,您可以在Activity中调用getResources().getInteger (R.integer.exponential_filter_alpha)获取整数值,然后按照您的要求除以100。

答案 1 :(得分:1)

根据您的评论,我将您的问题理解为效果问题。

在资源中保存和使用int而不是float在性能上根本不应该是明显的。通过这个说明,我认为保存int然后一直除以100将是愚蠢的,当你还可以保存浮动。另请注意,当您划分int时,无论如何都会隐式转换为double

你说你使用alpha值的值,你可能只需要1到100的精度,使用浮点数来表示这种精度是非常合理的,对{{1}也是合理的价值。

您可能需要阅读Float or Double?

答案 2 :(得分:0)

只需使用:

<item name="prim_alpha" format="float" type="dimen">0.87</item>