我的代码的一个要求是使用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 但这需要花车,通过这种方法无法获得双打。
答案 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>