36

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

状态的文档getFraction()

public float getFraction (int id, int base, int pbase)

检索特定资源 ID 的小数单位。

参数
base 此分数的基值。换句话说,标准分数乘以该值。
pbase 此分数的父基值。换言之,父分数 (nn%p) 乘以该值。

返回
属性小数值乘以相应的基值

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

4

1 回答 1

49

您在 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参数,将分数乘以这个。

于 2013-06-10T15:50:20.950 回答