如何使用Resources.getFraction()?

Dhe*_*.S. 27 android android-resources

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

getFraction()各州的文件:

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

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

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

返回
属性小数值乘以适当的基值

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

Ric*_*ich 39

您可以在XML中指定分数:

   <item name="fraction" type="fraction">5%</item>
   <item name="parent_fraction" type="fraction">2%p</item>
Run Code Online (Sandbox Code Playgroud)

实际使用时,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);
Run Code Online (Sandbox Code Playgroud)

如您所见,根据分数的类型,该getFraction方法相应地将值相乘.如果指定父分数(%p),则使用第二个参数(pbase),忽略第一个参数.另一方面,指定正态分数,仅使用base参数,将分数乘以此.