2012-07-31 7 views
24

मैं संसाधनों में 3.1416 जैसे आंशिक मान कैसे संग्रहीत करूं? एक्सएमएल में क्या लिखना है और जावा कोड में इसे कैसे पुनर्प्राप्त करना है?कोई संसाधन.getFraction() का उपयोग कैसे करता है?

प्रलेखन getFraction() के लिए कहता है:

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

एक विशेष संसाधन आईडी के लिए एक आंशिक इकाई प्राप्त करें।

पैरामीटर
base इस भिन्न का आधार मूल्य। दूसरे शब्दों में, मानक अंश इस मान से गुणा किया जाता है।
pbase इस अंश में का मूल आधार मान। दूसरे शब्दों में, इस मान से एक पैरेंट अंश (एनएन% पी) गुणा गुणा किया जाता है।

रिटर्न
भिन्नात्मक मूल्य उचित आधार मूल्य से गुणा गुण

This answer तर्क क्या मतलब के विवरण में जाने के बिना प्रतिशत का एक सरल उदाहरण दिखाता है।

उत्तर

33

आप के रूप में इतना एक्सएमएल में अंशों निर्दिष्ट करें:

<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 तर्क का उपयोग किया जाता है, जिससे अंश को गुणा किया जाता है।