android "पीएक्स", "डुबकी", "डीपी" और "एसपी" के बीच क्या अंतर है?





15 Answers

इसके बारे में बहुत कुछ और विभिन्न आकारों और घनत्व वाले एकाधिक स्क्रीन के लिए सर्वश्रेष्ठ समर्थन कैसे प्राप्त किया जाए, यहां बहुत अच्छी तरह से प्रलेखित किया गया है:

स्क्रीन का आकार
वास्तविक भौतिक आकार, स्क्रीन के विकर्ण के रूप में मापा जाता है। सादगी के लिए, एंड्रॉइड सभी वास्तविक स्क्रीन आकारों को चार सामान्यीकृत आकारों में समूहित करता है: छोटे, सामान्य, बड़े, और अतिरिक्त बड़े।

स्क्रीन घनत्व
स्क्रीन के भौतिक क्षेत्र के भीतर पिक्सल की मात्रा; आमतौर पर डीपीआई (डॉट्स प्रति इंच) के रूप में जाना जाता है। उदाहरण के लिए, "सामान्य" या "उच्च" घनत्व स्क्रीन की तुलना में, "कम" घनत्व स्क्रीन में किसी दिए गए भौतिक क्षेत्र के भीतर कम पिक्सेल होते हैं। सादगी के लिए, एंड्रॉइड सभी वास्तविक स्क्रीन घनत्व को छह सामान्यीकृत घनत्वों में समूहित करता है: निम्न, मध्यम, उच्च, अतिरिक्त उच्च, अतिरिक्त-अतिरिक्त-उच्च, और अतिरिक्त अतिरिक्त-अतिरिक्त-उच्च।

अभिविन्यास
उपयोगकर्ता के दृष्टिकोण से स्क्रीन का अभिविन्यास। यह या तो परिदृश्य या चित्र है, जिसका अर्थ है कि स्क्रीन का पहलू अनुपात क्रमशः चौड़ा या लंबा है। ध्यान रखें कि न केवल अलग-अलग डिवाइस अलग-अलग ओरिएंटेशन में डिफ़ॉल्ट रूप से काम करते हैं, लेकिन जब उपयोगकर्ता डिवाइस को घुमाता है तो अभिविन्यास रनटाइम पर बदल सकता है।

संकल्प
स्क्रीन पर भौतिक पिक्सेल की कुल संख्या। एकाधिक स्क्रीन के लिए समर्थन जोड़ने पर, अनुप्रयोग सीधे संकल्प के साथ काम नहीं करते हैं; अनुप्रयोगों को केवल सामान्य आकार और घनत्व समूहों द्वारा निर्दिष्ट स्क्रीन आकार और घनत्व के साथ ही चिंतित होना चाहिए।

घनत्व-स्वतंत्र पिक्सेल (डीपी)
लेआउट आयामों या घनत्व-स्वतंत्र तरीके से स्थिति व्यक्त करने के लिए, यूआई लेआउट को परिभाषित करते समय आपको एक आभासी पिक्सेल इकाई का उपयोग करना चाहिए। घनत्व-स्वतंत्र पिक्सेल एक 160 डीपीआई स्क्रीन पर एक भौतिक पिक्सेल के बराबर है, जो "मध्यम" घनत्व स्क्रीन के लिए सिस्टम द्वारा मानी जाने वाली बेसलाइन घनत्व है। रनटाइम पर, प्रणाली उपयोग में स्क्रीन की वास्तविक घनत्व के आधार पर, आवश्यकतानुसार डीपी इकाइयों के किसी भी स्केलिंग को पारदर्शी रूप से संभालती है। डीपी इकाइयों का स्क्रीन पिक्सल में रूपांतरण सरल है: px = dp * (dpi / 160) । उदाहरण के लिए, 240 डीपीआई स्क्रीन पर, 1 डीपी 1.5 भौतिक पिक्सेल के बराबर है। विभिन्न घनत्व वाले स्क्रीन पर अपने यूआई के उचित प्रदर्शन को सुनिश्चित करने के लिए, आपको हमेशा अपने एप्लिकेशन के यूआई को परिभाषित करते समय डीपी इकाइयों का उपयोग करना चाहिए।

यदि आप एक से अधिक प्रकार के डिवाइस के लिए एंड्रॉइड ऐप विकसित करने के बारे में गंभीर हैं, तो आपको कम से कम एक बार स्क्रीन समर्थन विकास दस्तावेज़ पढ़ना चाहिए था। इसके अलावा, एक विशेष स्क्रीन कॉन्फ़िगरेशन वाले सक्रिय उपकरणों की वास्तविक संख्या को जानना हमेशा अच्छी बात है।

android android-layout user-interface dimension units-of-measurement

माप की एंड्रॉइड इकाइयों के बीच क्या अंतर है?

  • पिक्सल
  • डुबोना
  • डी पी
  • एसपी



पीएक्स पिक्सल - पॉइंट प्रति स्केल स्क्रीन पर वास्तविक पिक्सेल से मेल खाता है।

इंच में - स्क्रीन के भौतिक आकार के आधार पर।

मिमी मिलीमीटर - स्क्रीन के भौतिक आकार के आधार पर।

पीटी पॉइंट्स - स्क्रीन के भौतिक आकार के आधार पर एक इंच का 1/72।

डीपी घनत्व - स्वतंत्र पिक्सेल - एक सारणी इकाई जो स्क्रीन की भौतिक घनत्व पर आधारित होती है। ये इकाइयां 160 डीपीआई स्क्रीन के सापेक्ष हैं, इसलिए एक dp 160 डीपीआई स्क्रीन पर एक पिक्सेल है। डीपी-टू-पिक्सेल का अनुपात स्क्रीन घनत्व के साथ बदल जाएगा, लेकिन जरूरी नहीं कि प्रत्यक्ष अनुपात में। नोट: कंपाइलर dip और dp दोनों स्वीकार करता है, हालांकि dp sp साथ अधिक संगत है।

एसपी- स्केल -स्वतंत्र पिक्सेल - यह dp इकाई की तरह है, लेकिन यह उपयोगकर्ता के फ़ॉन्ट आकार वरीयता से भी स्केल किया जाता है। यह अनुशंसा की जाती है कि आप फ़ॉन्ट आकार निर्दिष्ट करते समय इस इकाई का उपयोग करें, इसलिए उन्हें स्क्रीन घनत्व और उपयोगकर्ता की प्राथमिकता दोनों के लिए समायोजित किया जाएगा।

दो स्क्रीनों का उदाहरण लें जो एक ही आकार के हैं लेकिन एक में 160 डीपीआई (डॉट्स प्रति इंच, यानी पिक्सेल प्रति इंच) की स्क्रीन घनत्व है और दूसरा 240 डीपीआई है।

                          Lower resolution   screen          Higher resolution, same size
Physical Width                      1.5 inches                        1.5 inches
Dots Per Inch (“dpi”)               160                               240
Pixels (=width*dpi)                 240                               360
Density (factor of baseline 160)    1.0                               1.5

Density-independent Pixels          240                               240
(“dip” or “dp” or “dps”)

Scale-independent pixels 
 (“sip” or “sp”)                  Depends on user font size settings    same



dp dip । सब कुछ के लिए इसका इस्तेमाल करें (मार्जिन, पैडिंग, आदि)।

केवल {text-size} के लिए sp उपयोग करें।

विभिन्न स्क्रीन घनत्वों पर समान आकार प्राप्त करने के लिए, एंड्रॉइड इन इकाइयों को रनटाइम पर पिक्सल में अनुवादित करता है, इसलिए आपके लिए कोई मुश्किल गणित नहीं है।

विभिन्न स्क्रीन आकारों पर px , dp और sp बीच अंतर देखें।

स्रोत: एंड्रॉइड प्रोग्रामिंग: बिग नेर्ड रांच गाइड




परिभाषाएं

पीएक्स या डॉट भौतिक स्क्रीन पर एक पिक्सेल है

डीपीआई भौतिक स्क्रीन पर पिक्सेल प्रति इंच हैं और प्रदर्शन की घनत्व का प्रतिनिधित्व करते हैं।

एंड्रॉइड कई घनत्व के लिए उपनाम नाम देता है

  • एलडीपीआई (कम) ~ 120 डीपीआई
  • एमडीपीआई (मध्यम) ~ 160 डीपीआई
  • एचडीपीआई (उच्च) ~ 240 डीपीआई
    • 2015 में अधिकांश डिवाइस यहां हैं
  • xhdpi (अतिरिक्त उच्च) ~ 320 डीपीआई
    • ऐप्पल आईफोन 4/5/6, नेक्सस 4
  • xxhdpi (अतिरिक्त अतिरिक्त-उच्च) ~ 480 डीपीआई
    • नेक्सस 5
  • xxxhdpi (अतिरिक्त अतिरिक्त-अतिरिक्त-उच्च) ~ 640 डीपीआई

डुबकी या डीपी घनत्व-indenpendant पिक्सल हैं , यानी वे शारीरिक घनत्व के आधार पर कम या ज्यादा पिक्सल के अनुरूप हैं।

  • एमडीपीआई पर 1 डीपी = 1 पीएक्स

एसपी या एसआईपी एक पैमाने पर स्वतंत्र पिक्सेल हैसेटिंग > एक्सेसिबिलिटी में बड़े टेक्स्ट विकल्प चालू होने पर उन्हें स्केल किया जाता है

  • 1 एसपी = 1 डीपी
  • पहुंच के साथ 1 एसपी = 1.2 डीपी बड़ा टेक्स्ट

क्या उपयोग करें?

पाठ आकार के लिए एसपी का प्रयोग करें।

बाकी सब कुछ के लिए डीपी का प्रयोग करें।




मूल रूप से एकमात्र समय जहां पीएक्स लागू होता है वह एक पीएक्स होता है, और यदि आप एक विभक्त के मामले में स्क्रीन पर बिल्कुल एक पिक्सेल चाहते हैं:

160 डीपीआई पर, आपको 2-3 पिक्सल मिल सकते हैं,

120 डीपीआई पर, यह 0 तक गोल करता है।




पीएक्स और डीपी के बीच क्या संबंध और संबंध का उपयोग करना है?

घनत्व-स्वतंत्र पिक्सेल (डीपी)

लेआउट आयामों या घनत्व-स्वतंत्र तरीके से स्थिति व्यक्त करने के लिए, यूआई लेआउट को परिभाषित करते समय आपको एक आभासी पिक्सेल इकाई का उपयोग करना चाहिए। जैसा कि ऊपर वर्णित है, घनत्व-स्वतंत्र पिक्सेल एक 160 डीपीआई स्क्रीन पर एक भौतिक पिक्सेल के बराबर है, जो "मध्यम" घनत्व स्क्रीन के लिए सिस्टम द्वारा मानी जाने वाली बेसलाइन घनत्व है। रनटाइम पर, प्रणाली उपयोग में स्क्रीन की वास्तविक घनत्व के आधार पर, आवश्यकतानुसार डीपी इकाइयों के किसी भी स्केलिंग को पारदर्शी रूप से संभालती है। डीपी इकाइयों का स्क्रीन पिक्सल में रूपांतरण सरल है:

पीएक्स = डीपी * (डीपीआई / 160)।

उदाहरण के लिए, 240 डीपीआई स्क्रीन पर, 1 डीपी 1.5 भौतिक पिक्सेल के बराबर है। विभिन्न घनत्व वाले स्क्रीन पर अपने यूआई के उचित प्रदर्शन को सुनिश्चित करने के लिए, आपको हमेशा अपने एप्लिकेशन के यूआई को परिभाषित करते समय डीपी इकाइयों का उपयोग करना चाहिए।

डीपी और इसके विपरीत पिक्सेल को समझना बहुत जरूरी है (विशेष रूप से रचनात्मक टीम को सटीक डीपी मान देने के लिए)

dp = px * 160 / dpi

MDPI = 160 dpi || Therefore, on MDPI 1 px = 1 dp
For example, if you want to convert 20 pixel to dp, use the above formula,
dp = 20 * 160 / 160 = 20.
So, 20 pixel = 20 dp.

HDPI = 240 dpi - So, on HDPI 1.5 px = 1 dp
XHDPI = 320 dpi - So, on XHDPI 2 px = 1 dp
XXHDPI = 480 dpi - So, on XXHDPI 3 px = 1 dp

For example, let us consider Nexus 4.
If 24 pixels to be converted to dp and if it is a Nexus 4 screen, developers can
convert it to dp easily by the following calculation :
dp = 24 * 160 / 320 = 12 dp
Screen dimension:
768 x 1280 pixel resolution (320 ppi or 320dpi)
Optional (screen size):
 4.7" diagonal
  • क्रिएटिव टीम से भी संख्या में सभी पिक्सेल मान प्राप्त करने का प्रयास करें। अन्यथा 0.5 के साथ गुणा करते समय सटीक हार होगी।

पिक्सल

यह ऊपर समझाया गया है। लेआउट फ़ाइलों में से बचने की कोशिश करें। लेकिन कुछ मामले हैं, जहां पीएक्स की आवश्यकता है। उदाहरण के लिए, ListView विभाजक लाइन। सभी स्क्रीन संकल्पों के लिए एक विभक्त के रूप में एक पिक्सेल लाइन देने के लिए पीएक्स बेहतर है।

एसपी

फ़ॉन्ट आकार के लिए एसपी का प्रयोग करें। तब डिवाइस फोंट आकार में परिवर्तन के दौरान केवल एप्लिकेशन के अंदर फ़ॉन्ट बदल जाएगा (यानी, डिस्प्ले -> डिवाइस पर फ़ॉन्ट्स)। यदि आप ऐप के अंदर एक स्थिर आकार का फ़ॉन्ट रखना चाहते हैं, तो आप डीपी में फ़ॉन्ट आयाम दे सकते हैं। ऐसे मामले में, यह कभी नहीं बदलेगा। कुछ विशिष्ट स्क्रीन के लिए डेवलपर्स को ऐसी आवश्यकता हो सकती है, इसके लिए, डेवलपर्स एसपी के बजाय डीपी का उपयोग कर सकते हैं। अन्य सभी मामलों में, एसपी की सिफारिश की जाती है।




पाठ और उपस्थिति के आकार से संबंधित कुछ भी sp या pt उपयोग करना चाहिए। जबकि, नियंत्रण के आकार से संबंधित कुछ भी, लेआउट, आदि dp साथ इस्तेमाल किया जाना चाहिए।

आप अपने स्थानों पर dp और dip दोनों का उपयोग कर सकते हैं।




एसपी = स्केल स्वतंत्र पिक्सेल

डीपी = डुबकी = घनत्व स्वतंत्र पिक्सल

डीपीआई = डॉट प्रति इंच

हमें एसपी का उपयोग करने से बचना चाहिए।

हमें कई स्क्रीन का समर्थन करने के लिए डीपी का उपयोग करना चाहिए।

एंड्रॉइड विभिन्न स्क्रीन संकल्पों का समर्थन करता है

  • एलडीपीआई (कम) ~ 120 डीपीआई
  • एमडीपीआई (मध्यम) ~ 160 डीपीआई
  • एचडीपीआई (उच्च) ~ 240 डीपीआई
  • xhdpi (अतिरिक्त उच्च) ~ 320 डीपीआई
  • xxhdpi (अतिरिक्त अतिरिक्त-उच्च) ~ 480 डीपीआई
  • xxxhdpi (अतिरिक्त अतिरिक्त अतिरिक्त-उच्च) ~ 640 डीपीआई

एक 120 डीपी एलडीपीआई डिवाइस में 1 इंच आकार में 120 पिक्सल हैं।

अन्य घनत्व के लिए भी वही ...

हम सॉफ्टवेयर इंजीनियरों के रूप में इस रूपांतरण सूत्र का उपयोग करना चाहिए:

पिक्सेल = डीपी * (घनत्व / 160)

तो 240 डीपीआई डिवाइस के 1 डीपी में = 1 * (240/160) = 3/2 = 1.5 पिक्सल होगा।

और 480 डीपीआई डिवाइस के 1 डीपी में = 1 * (480/160) = 3 पिक्सल होगा।

इस 1.5 और 3 पिक्सेल ज्ञान का उपयोग करते हुए, एक सॉफ्टवेयर इंजीनियर विभिन्न घनत्व के लिए लेआउट डिज़ाइन कर सकता है।

किसी भी डिवाइस के स्क्रीन पैरामीटर की जांच करने के लिए:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

Toast.makeText(
    this,
    "4:" + metrics.heightPixels + "," + metrics.density + ","
    + metrics.densityDpi, Toast.LENGTH_LONG).show();



डीपीआई -

  • प्रति इंच डॉट्स
  • स्क्रीन के पिक्सेल घनत्व को मापना।

पीएक्स - पिक्सेल

  • स्क्रीन पिक्सेल मैपिंग के लिए

पीटी - अंक

  • भौतिक स्क्रीन आकार के संबंध में, लगभग 1/72 इंच।

इन-इंच - भौतिक स्क्रीन आकार (1 इंच = 2.54 सेमी) के संबंध में।

मिमी-मिलीमीटर - भौतिक स्क्रीन आकार के संबंध में।

एसपी-स्केल-स्वतंत्र पिक्सेल।

  • उपयोगकर्ता के फ़ॉन्ट आकार वरीयता के आधार पर।
  • फ़ॉन्ट 'एसपी' में होना चाहिए।

डुबोना -

  • डुबकी == डीपी
  • घनत्व स्वतंत्र पिक्सेल।
  • यह स्क्रीन घनत्व के आधार पर भिन्न होता है।
  • 160 डीपीआई स्क्रीन में, 1 डीपी = 1 पिक्सेल।
  • पाठ फ़ॉन्ट आकार को छोड़कर डीपी का प्रयोग करें।

मानक में, डीपी और एसपी का उपयोग किया जाता है। सब कुछ के लिए फ़ॉन्ट आकार और डीपी के लिए एसपी।

इकाइयों के रूपांतरण के लिए फॉर्मूला:

पीएक्स = डीपी * (डीपीआई / 160);

Density Bucket -> Screen Display => Physical Size        => Pixel Size                   

ldpi         -> 120 dpi          => 0.5 x 0.5 in         => 0.5 in * 120 dpi = 60x60 px   

mdpi         -> 160 dpi          => 0.5 x 0.5 in         => 0.5 in * 160 dpi = 80x80 px   

hdpi         -> 240 dpi          => 0.5 x 0.5 in         => 0.5 in * 240 dpi = 120x120 px  

xhdpi        -> 320 dpi          => 0.5 x 0.5 in         => 0.5 in * 320 dpi = 160x160 px  

xxhdpi       -> 480 dpi          => 0.5 x 0.5 in         => 0.5 in * 480 dpi = 240x240 px 

xxxhdpi      -> 640 dpi          => 0.5 x 0.5 in         => 0.5 in * 640 dpi = 320x320 px  



एंड्रॉइड द्वारा उपयोग किया गया सूत्र यहां दिया गया है:

पीएक्स = डीपी * (डीपीआई / 160)

जहां डीपीआई निम्नलिखित स्क्रीन घनत्व में से एक है। सभी संभावित घनत्वों की एक सूची के लिए यहां जाएं

यह "DENSITY_ *" स्थिरांक को परिभाषित करता है।

  • एलडीपीआई (कम) ~ 120 डीपीआई
  • एमडीपीआई (मध्यम) ~ 160 डीपीआई
  • एचडीपीआई (उच्च) ~ 240 डीपीआई
  • xhdpi (अतिरिक्त उच्च) ~ 320 डीपीआई
  • xxhdpi (अतिरिक्त अतिरिक्त-उच्च) ~ 480 डीपीआई
  • xxxhdpi (अतिरिक्त अतिरिक्त-अतिरिक्त-उच्च) ~ 640 डीपीआई

यहां से लिया गया ।

यदि आप अपनी स्क्रीन डीपीआई जानते हैं तो यह पीएक्स और डीपी के बीच अनुवाद करते समय बहुत भ्रम का समाधान करेगा।

तो, मान लीजिए कि आप एक एचडीपीआई स्क्रीन के लिए 60 डीपी की एक छवि चाहते हैं तो 60 डीपी का भौतिक पिक्सेल आकार है:

px = 60 * (240 / 160)



कृपया समुदाय विकी से जवाब पढ़ें। नीचे उल्लिखित उत्तरों के अलावा कुछ जानकारी माना जाना चाहिए।

एसपी = स्केल स्वतंत्र पिक्सेल

डीपी = घनत्व स्वतंत्र पिक्सल

डीपीआई = घनत्व पिक्सल

मैं उपर्युक्त उत्तरों से गुजर चुका हूं ... उन्हें बिल्कुल सही नहीं ढूंढ रहा हूं। पाठ आकार के लिए एसपी, लेआउट सीमाओं के लिए डीपी - मानक। लेकिन अधिकांश आकारों में लापरवाही से उपयोग किए जाने पर पाठ आकार के लिए एसपी लेआउट तोड़ देगा

एसपी डिवाइस के ग्रंथों को लेते हैं, जबकि डीपी डिवाइस घनत्व मानक (किसी डिवाइस में कभी नहीं बदलते) लेते हैं, कहें कि 100sp टेक्स्ट डिवाइस में फ़ॉन्ट आकार सेट के आधार पर 80% स्क्रीन या 100% स्क्रीन पर कब्जा कर सकता है

आप लेआउट सीमाओं के लिए एसपी का भी उपयोग कर सकते हैं, यह काम करेगा :) पूरे पाठ के लिए कोई मानक ऐप उपयोग नहीं करता है

यूएक्स पर विचार कर टेक्स्ट आकार के लिए एसपी और डीपी का प्रयोग करें।

  • टूलबार में टेक्स्ट के लिए sp का उपयोग न करें (एंड्रॉइड dimens उपलब्ध या डीपी का उपयोग कर सकते हैं)
  • छोटे बाध्य बटन, बहुत छोटे पाठ, आदि में पाठ के लिए एसपी का उपयोग न करें

कुछ लोग अपने फोन में अधिक पठनीयता के लिए विशाल फ़ॉन्ट का उपयोग करते हैं, जिससे उन्हें छोटे हार्डकोडेड आकार का टेक्स्ट एक यूएक्स मुद्दा होगा। जरूरी पाठ के लिए स्पॉट रखें, लेकिन सुनिश्चित करें कि यह लेआउट तोड़ नहीं देगा।

इसी प्रकार यदि आपके पास सभी आयामों का समर्थन करने वाला एक ऐप है, तो xxxhdpi संपत्तियों को जोड़ने से ऐप का आकार बहुत बढ़ जाता है। लेकिन अब xxxhdpi फोन आम हैं इसलिए हमें साइड बार, टूलबार और नीचे बार में आइकन के लिए कम से कम xxxhdpi संपत्तियां शामिल करनी होंगी। सभी स्क्रीन आकारों के लिए एक समान और बेहतर गुणवत्ता वाली छवियों के लिए वेक्टर छवियों में स्थानांतरित करना बेहतर है।




स्क्रीन का आकार एंड्रॉयड में श्रेणियों में बांटा गया है ldpi, mdpi, hdpi, xhdpi, xxhdpiऔर xxxhdpiस्क्रीन घनत्व स्क्रीन के क्षेत्र (जैसे इंच) के भीतर पिक्सल की मात्रा है। आम तौर पर इसे डॉट्स-प्रति-इंच ( dpi) में मापा जाता है ।

PX(Pixels):

  • हमारा सामान्य मानक पिक्सेल जो स्क्रीन पिक्सेल पर मैप करता है। pxपूर्ण पिक्सेल के लिए है। यदि आप चौड़ाई या ऊंचाई के लिए पूर्ण पिक्सल के संदर्भ में देना चाहते हैं तो इसका उपयोग किया जाता है। सिफारिश नहीं की गई।

DP/DIP(Density pixels / Density independent pixels):

  • dip == dp। पहले के एंड्रॉइड संस्करणों में डुबकी का इस्तेमाल किया गया था और बाद में बदल दिया गया था dp। यह विकल्प है px

  • आम तौर पर हम कभी भी उपयोग नहीं करते pxक्योंकि यह पूर्ण मूल्य है। यदि आप pxचौड़ाई या ऊंचाई सेट करने के लिए उपयोग करते हैं, और यदि वह एप्लिकेशन विभिन्न स्क्रीन आकार वाले उपकरणों में डाउनलोड किया जा रहा है, तो वह दृश्य स्क्रीन मूल आकार के अनुसार नहीं फैलाएगा।

  • dpजगह में उपयोग करने की अत्यधिक अनुशंसा की जाती है pxdpयदि आप स्क्रीन आकारों के आधार पर गतिशील रूप से बढ़ने और घटाने के लिए चौड़ाई और ऊंचाई का उल्लेख करना चाहते हैं तो इसका उपयोग करें ।

  • अगर हम देते हैं dp/dip, तो एंड्रॉइड स्वचालित रूप से 160 पिक्सेल आकार की स्क्रीन के आधार पर पिक्सेल आकार की गणना करेगा।

SP(Scale independent pixels):

  • उपयोगकर्ता के फ़ॉन्ट आकार वरीयता के आधार पर स्केल किया गया। फ़ॉन्ट्स का उपयोग करना चाहिए sp

  • विभिन्न स्क्रीन आकारों के लिए फिट करने के लिए फ़ॉन्ट आकार का उल्लेख करते समय, उपयोग करें sp। यह समान है dpspविशेष रूप से फ़ॉन्ट आकारों के आधार पर गतिशील रूप से बढ़ने और घटने के लिए उपयोग करें

एंड्रॉइड प्रलेखन कहते हैं:

आयाम निर्दिष्ट करते समय, हमेशा dpया तो spइकाइयों का उपयोग करें । ए dpघनत्व-स्वतंत्र पिक्सेल है जो 160 पर पिक्सेल के भौतिक आकार से मेल खाता है dpi। एक spसमान आधार इकाई है, लेकिन उपयोगकर्ता के पसंदीदा टेक्स्ट आकार (यह एक स्केल-स्वतंत्र पिक्सेल है) द्वारा स्केल किया गया है, इसलिए पाठ आकार को परिभाषित करते समय आपको इस माप इकाई का उपयोग करना चाहिए




मोबाइल फोन की स्क्रीन पिक्सेल (पीएक्स) के नाम से जाना जाने वाले हजारों छोटे बिंदुओं से बना है । एक पिक्सेल सबसे छोटा तत्व है जो तस्वीर बनाने के लिए जाता है। एक तस्वीर या शब्द बनाने के लिए पिक्सेल की संख्या जितनी अधिक होगी, उतनी ही तेज हो जाएगी और स्मार्टफोन स्क्रीन को आसानी से पठनीय बनाया जा सकेगा।

स्क्रीन रेज़ोल्यूशन स्क्रीन पर पिक्सल की संख्या के मामले में मापा जाता है। डिवाइस रिज़ॉल्यूशन एक स्क्रीन खरीदने पर आमतौर पर उपयोग किया जाने वाला विनिर्देश है, लेकिन वास्तव में यह एंड्रॉइड के लिए डिज़ाइन करते समय उपयोगी नहीं है क्योंकि पिक्सल के मामले में स्क्रीन की सोच भौतिक आकार की धारणा को अनदेखा करती है, जो टच डिवाइस के लिए वास्तव में वास्तव में महत्वपूर्ण है।

घनत्व स्वतंत्र पिक्सेल (डीपी या डुबकी) डिजाइनर को उन संपत्तियों को बनाने की अनुमति देता है जो अपेक्षित तरीके से दिखाई देते हैं, भले ही लक्ष्य डिवाइस का संकल्प या घनत्व न हो।

एक घनत्व स्वतंत्र पिक्सेल (डीपी या डुबकी) बेसलाइन घनत्व या 160 डीपीआई (डॉट प्रति इंच) पर एक पिक्सेल के बराबर है।

1 पीएक्स / 1 डीपी = 160 डीपीआई / 160 डीपीआई

2 पीएक्स / 1 डीपी = 320 डीपीआई (2 एक्स) / 160 डीपीआई

कहा पे,

डीपीआई प्रति इंच डॉट्स है

तो, 320 डीपीआई पर, 1 डीपी 2 पीएक्स के बराबर है।

सूत्र

पीएक्स / डीपी = डीपीआई / 160 डीपीआई

डॉट्स प्रति इंच (डीपीआई) डिस्प्ले स्क्रीन पर तीखेपन (यानी, प्रबुद्ध बिंदुओं की घनत्व) का एक उपाय है। किसी दिए गए चित्र रिज़ॉल्यूशन के लिए डॉट्स प्रति इंच कुल स्क्रीन आकार के आधार पर अलग-अलग होंगे क्योंकि एक ही स्थान पर पिक्सेल की संख्या उतनी ही फैल रही है।

घनत्व स्वतंत्र पिक्सल के साथ काम करने से हमें ऐसी स्थिति से निपटने में मदद मिलती है जैसे आपके पास दो पिक्सेल रिज़ॉल्यूशन वाले दो डिवाइस हैं, लेकिन स्पेस की अलग-अलग मात्रा है। मान लीजिए कि एक मामले में, एक टैबलेट और फोन में एक ही पिक्सेल रिज़ॉल्यूशन 1280 800 पिक्सल (160 डीपीआई) और 800 क्रमशः 1280 पिक्सल (320 डीपीआई) है।

अब क्योंकि टैबलेट बेसलाइन घनत्व (160 डीपीआई) पर है, इसके भौतिक और घनत्व वाले स्वतंत्र पिक्सेल आकार समान हैं, 1280 800 तक। दूसरी तरफ के फोन में उच्च पिक्सेल घनत्व होता है, इसलिए इसमें आधे से अधिक घनत्व स्वतंत्र पिक्सेल भौतिक होते हैं पिक्सल। तो एक फोन 400 से 640 घनत्व स्वतंत्र पिक्सल है। इसलिए घनत्व-स्वतंत्र पिक्सेल का उपयोग करना मानसिक रूप से चित्रित करना आसान बनाता है कि टैबलेट में फोन की तुलना में अधिक जगह है।

इसी तरह, यदि आपके पास समान स्क्रीन आकार वाले दो डिवाइस हैं, लेकिन अलग-अलग पिक्सेल घनत्व है, तो कहते हैं कि 800 800 से 1280 पिक्सेल (320 डीपीआई) है, और दूसरा 400 से 640 पिक्सल (160 डीपीआई) है, हमें पूरी तरह से परिभाषित करने की आवश्यकता नहीं है इन दो उपकरणों के लिए अलग-अलग लेआउट, क्योंकि हम घनत्व स्वतंत्र पिक्सेल के संदर्भ में संपत्तियों को माप सकते हैं जो दोनों उपकरणों के लिए समान है।

800 द्वारा 1280 पिक्सेल (320 डीपीआई) = 400 640 घनत्व स्वतंत्र पिक्सेल (डीपी)

400 से 640 पिक्सेल (160 डीपीआई) = 400 640 घनत्व स्वतंत्र पिक्सेल (डीपी)

स्केल स्वतंत्र पिक्सेल (एसपी) फ़ॉन्ट आकार के लिए पसंदीदा इकाई है। अभिगम्यता उद्देश्यों के लिए, एंड्रॉइड उपयोगकर्ताओं को अपने डिवाइस के फ़ॉन्ट आकार को अनुकूलित करने की अनुमति देता है। जिन उपयोगकर्ताओं को टेक्स्ट पढ़ने में परेशानी होती है वे अपने डिवाइस के फ़ॉन्ट आकार को बढ़ा सकते हैं। आप आमतौर पर फ़ॉन्ट विकल्प के तहत अपने फोन या टैबलेट पर डिस्प्ले सेटिंग में यह विकल्प पा सकते हैं। यह अक्सर एक्सेसिबिलिटी सेटिंग्स के माध्यम से भी उपलब्ध है।

स्केल स्वतंत्र पिक्सल के साथ, 16 एसपी 16 डीपी के बराबर है जब डिवाइस का फ़ॉन्ट आकार सामान्य है या 100% है। लेकिन जब डिवाइस का फ़ॉन्ट आकार बड़ा होता है, उदाहरण के लिए 125%, 16 एसपी 20 डीपी या 1.25 बार 16 में अनुवाद करेगा।

यदि आप फ़ॉन्ट आकार के लिए इकाई के रूप में डीपी का उपयोग करते हैं, तो टेक्स्ट के उस टुकड़े का एक विशिष्ट भौतिक आकार होता है चाहे उपयोगकर्ता ने डिवाइस के फ़ॉन्ट आकार को कस्टमाइज़ किया हो। एसपी इकाइयों का उपयोग करने से दृष्टिहीन दृष्टि वाले लोगों के लिए बेहतर अनुभव होगा।

संदर्भ : Udacity , Google




एसडीपी - एक स्केलेबल आकार इकाई - मूल रूप से यह एक इकाई नहीं है, लेकिन विभिन्न स्क्रीन आकार के लिए आयाम संसाधन।

Intuit से एसडीपी पुस्तकालय आज़माएं । इकाई समस्याओं को हल करने के लिए यह बहुत आसान है, और आप जल्दी से कई स्क्रीन का समर्थन कर सकते हैं ।

प्रयोग

android:paddingBottom="@dimen/_15sdp"सकारात्मक और android:layout_marginTop="@dimen/_minus10sdp"नकारात्मक एसडीपी एसडीपी के लिए

values-sw<N>dpफ़ोल्डरों में प्रत्येक आकार के लिए डीपी में समतुल्य मूल्य है (sw = smallestWidth)।

ध्यान

इसे ध्यान से प्रयोग करें! ज्यादातर मामलों में आपको अभी भी टेबलेट के लिए एक अलग लेआउट तैयार करने की आवश्यकता है।

उदाहरण

<LinearLayout
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginTop="@dimen/_minus10sdp"
          android:paddingBottom="@dimen/_15sdp"
          android:orientation="horizontal" >

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:includeFontPadding="false"
                    android:text="♡"
                    android:textColor="#ED6C27"
                    android:textSize="@dimen/_70sdp"
                    android:textStyle="bold" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:includeFontPadding="false"
                    android:text="U"
                    android:textColor="@android:color/black"
                    android:textSize="@dimen/_70sdp" />
            </LinearLayout>

आप टेक्स्ट आकार के लिए डीबी का उपयोग कर सकते हैं, लेकिन मैं टेक्स्ट आकार के लिए ssp पसंद करता हूं ।

अधिक जानकारी के लिए, लाइब्रेरी गिटहब पेज देखें




मैं समझने का एक आसान तरीका प्रदान करना चाहता हूं dp। वास्तव में, मुझे लगता dpहै कि समझने वाला सबसे आसान तरीका है। dpसिर्फ एक भौतिक लंबाई इकाई है। यह एक ही आयाम के रूप में है mmया inch। यह सिर्फ सुविधाजनक हमें लिखने के लिए है 50dp, 60dpके बजाय 50/160 inchया 60/160 inch, क्योंकि एक dpबस है 1/160 inchजो कुछ भी स्क्रीन आकार या संकल्प है।

एकमात्र समस्या यह है कि, कुछ स्क्रीन के एंड्रॉइड डीपीआई सटीक नहीं हैं। उदाहरण के लिए, 160 डीपीआई में वर्गीकृत एक स्क्रीन में वास्तव में 170 डीपीआई हो सकती है। तो गणना का परिणाम dpअस्पष्ट है। यह लगभग समान होना चाहिए 1/160 inch




Related