2015-11-12 8 views
6

शीर्षक के अनुसार, मैं आरएन में उपयोग किए गए लेआउट आकार मानों की इकाई के बारे में उलझन में हूं। documentation में, नीचे दिया गया कोड है जो बताता है कि यह आकार इकाई के रूप में पिक्सेल की बजाय डीपी का उपयोग करता है। यहां getPixelSizeForLayoutSize() फ़ंक्शन डीपी मानों को पिक्सेल मानों में कनवर्ट करने का प्रयास करता है। हालांकि, वास्तविक अनुप्रयोगों में, PixelRatio.get() का उपयोग करके आकार मान (ऊंचाई/चौड़ाई, आदि) को विभाजित नहीं करते समय मेरे घटक स्क्रीन बाध्य हो जाते हैं। वास्तव में आपकी स्पष्टीकरण की सराहना करेंगे!क्या रिएक्टिव मूल उपयोग डीपी या पिक्सेल में फ्लेक्सबॉक्स है?

var image = getImage({ 
    width: PixelRatio.getPixelSizeForLayoutSize(200), 
    height: PixelRatio.getPixelSizeForLayoutSize(100), 
}); 
<Image source={image} style={{width: 200, height: 100}} /> 

उत्तर

6

मूल निवासी का उपयोग करता है तार्किक पिक्सल के रूप में जावास्क्रिप्ट स्तर पर, डिवाइस पिक्सल का विरोध किया, (iOS पर "अंक" के रूप में जानते हैं) प्रतिक्रिया। देशी स्तर पर काम करते समय, आपको कभी-कभी स्क्रीन स्केल द्वारा लॉजिकल पिक्सल गुणा करके डिवाइस पिक्सल के साथ काम करने की आवश्यकता हो सकती है (उदा। 2x, 3x)।

जब आप छवियों के साथ काम कर रहे हों, तो आप लॉजिकल पिक्सल में अपने आयाम निर्दिष्ट करना चाहेंगे। इसके अलावा, प्रतिक्रिया मूल आंशिक पिक्सेल का समर्थन करता है। जब आपको डिवाइस पिक्सल की ग्रैन्युलरिटी पर सटीक लेआउट निर्दिष्ट करने की आवश्यकता होती है, तो 1/PixelRatio.get() का उपयोग करें।

+1

धन्यवाद विचार। मेरे सभी डिज़ाइन अब डीपी में हैं (आईओएस "पॉइंट्स" या लॉजिकल पिक्सल का एंड्रॉइड संस्करण)। डीओपी को आईओएस पॉइंट में बदलने का कोई तरीका है? मैंने कुछ खोज की लेकिन मुझे बहुत उपयोगी जानकारी नहीं मिली। – ZJL

+2

मैंने इसे भी समझ लिया है। एंड्रॉइड शब्दों में, मुझे लगता है कि फ्लेक्सबॉक्स जावास्क्रिप्ट स्तर पर यूनिट के रूप में डीपी का उपयोग करता है। – ZJL

+0

@ZJL तो क्या आप कृपया मेरे प्रश्न का उत्तर दे सकते हैं, मुझे कहीं भी समाधान नहीं मिल रहा है ..! http://stackoverflow.com/questions/38325043/react-native-how-to-scale-font-size-to-support- कई- अलग-resolutions-and-s – SudoPlz

संबंधित मुद्दे