2012-07-31 18 views
24

Wie speichere ich einen Bruchwert wie 3.1416 in Ressourcen? Was in das XML schreiben und wie es in Java-Code abrufen?Wie benutzt man Resources.getFraction()?

Die Dokumentation für getFraction() Zustände:

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

eine gebrochene Einheit Abrufen für eine bestimmte Ressource ID.

Parameter
base Der Basiswert dieser Fraktion. Mit anderen Worten, ein Standardanteil von wird mit diesem Wert multipliziert.
pbase Der Elternbasiswert von dieser Bruchteil. Mit anderen Worten, ein Elternteil (nn% p) wird mit diesem Wert multipliziert.

Returns
durch den entsprechenden Basiswert multipliziert Bruchwert Attribut

This answer zeigt ein einfaches Beispiel der Prozentsatz, ohne in die Einzelheiten zu gehen, was die Argumente bedeuten.

Antwort

33

Sie Brüche in XML angeben, wie so:

<item name="fraction" type="fraction">5%</item> 
    <item name="parent_fraction" type="fraction">2%p</item> 

Wo 5% 0,05, wenn tatsächlich verwendet würde.

Dann:

// 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); 

Wie Sie sehen können, je nach Art der Fraktion, die getFraction Methode multipliziert die Werte entsprechend. Wenn Sie einen übergeordneten Bruch (%p) angeben, wird das zweite Argument (pbase) verwendet, wobei der erste ignoriert wird. Andererseits wird bei der Angabe eines normalen Bruchteils nur das Argument base verwendet, wodurch der Bruchteil multipliziert wird.