你可以这样指定XML中的分数:
5%
2%p
实际使用时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),忽略第一个参数。另一方面,指定正态分数时,仅使用基本参数,将分数乘以此。