web-dev-qa-db-ja.com

Resources.getFraction()をどのように使用しますか?

_3.1416_のような小数値をリソースに保存するにはどうすればよいですか? XMLに何を記述し、それをJavaコードで取得する方法は?

getFraction() のドキュメントには次のように記載されています。

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

特定のリソースIDの小数単位を取得します。

パラメータ
baseこの分数の基数。つまり、標準の分数にこの値を掛けます。
pbaseこの分数の親の基数。つまり、親の分数(nn%p)にこの値を掛けます。

返品
属性の小数値に適切な基本値を掛けたもの

この回答 は、引数の意味の詳細に立ち入ることなく、パーセンテージの簡単な例を示しています。

27
Dheeraj V.S.

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)、最初の引数を無視して、2番目の引数(pbase)を使用します。一方、通常の分数を指定すると、base引数のみが使用され、分数にこれが乗算されます。

38
Rich