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