如何在资源中存储像3.1416这样的分数值?用XML编写什么以及如何用Java代码检索它?

getFraction() 的文档指出:



This answer显示了一个简单的百分比示例,而没有详细说明参数的含义。

最佳答案

您可以这样在XML中指定分数:

   <item name="fraction" type="fraction">5%</item>
   <item name="parent_fraction" type="fraction">2%p</item>

实际使用时,其中5%为0.05。

然后:
// 0.05f
getResources().getFraction(R.fraction.fraction, 1, 1);
// 0.02f
getResources().getFraction(R.fraction.parent_fraction, 1, 1);
// 0.10f
getResources().getFraction(R.fraction.fraction, 2, 1);
// 0.10f
getResources().getFraction(R.fraction.fraction, 2, 2);
// 0.04f
getResources().getFraction(R.fraction.parent_fraction, 1, 2);
// 0.04f
getResources().getFraction(R.fraction.parent_fraction, 2, 2);

正如您所看到的,getFraction方法根据分数的类型相应地乘以值。
如果指定父级分数(%p),它将使用第二个参数(pbase),而忽略第一个参数。
另一方面,指定普通分数时,仅使用base参数,并将其乘以该分数。

10-05 18:05