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




android-layout user-interface (20)

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

आपको इसे ग्रंथों के साथ उपयोग करना चाहिए क्योंकि यह उपयोगकर्ता द्वारा अपने डिवाइस में उपयोग किए जा रहे फ़ॉन्ट आकार के अनुसार स्वचालित रूप से स्केल किया जाता है।

पीएक्स: पिक्सेल या तस्वीर तत्व स्क्रीन पर एक बिंदु है

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

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

परिभाषाएं

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

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

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

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

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

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

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

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

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

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

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


आधिकारिक दस्तावेज से कॉपी किए गए उत्तरों द्वारा " उपयोगकर्ता के फ़ॉन्ट आकार वरीयता " के रूप में वर्णित dp और sp इकाइयों के बीच अंतर dp Settings->Accessibility->Large Text विकल्प को बदलकर रन टाइम पर देखा जा सकता है।

Large Text विकल्प टेक्स्ट को 1.3 गुणा बड़ा बनने के लिए मजबूर करता है।

private static final float LARGE_FONT_SCALE = 1.3f;

यह निश्चित रूप से विक्रेता विक्रेता निर्भर हो सकता है क्योंकि यह packages/apps/Settings में निहित है।


आप नीचे दी गई तस्वीर से px और dp बीच का अंतर देख सकते हैं, और आप यह भी पा सकते हैं कि px और dp विभिन्न स्क्रीन पर एक ही भौतिक आकार की गारंटी नहीं दे सका।


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

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

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

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

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

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

  • एलडीपीआई (कम) ~ 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 डीपीआई पर, आपको 2-3 पिक्सल मिल सकते हैं,

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


मैं केवल डीपी का उपयोग करता हूँ।

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

इसके अलावा, यदि आप 160 डीपीआई टैबलेट पर एक स्पॉट-फ़ॉन्ट ऐप लेते हैं, तो आप पाएंगे कि सबकुछ बढ़ता है ... लेकिन आपका फ़ॉन्ट, जो तुलना में छोटे दिखने वाला है। यह एक अच्छा नज़र नहीं है।

जबकि "एसपी" फोंट के विचार का दिल अच्छा है, यह एक गरीब विचार है। सब कुछ के लिए डीपी के साथ चिपकाओ।


मैंने रूपांतरण dpi को dp और sp बनाने के लिए नीचे दिए गए सूत्र की गणना की है


1) dp: (density independent pixels)

डीपी की एक इकाई में प्रदर्शित पिक्सल की संख्या में वृद्धि होगी क्योंकि स्क्रीन रिज़ॉल्यूशन बढ़ता है (जब आपके पास प्रति इंच अधिक डॉट्स / पिक्सल होते हैं)। इसके विपरीत कम संकल्प वाले उपकरणों पर, डीपी की इकाई में प्रदर्शित पिक्सेल की संख्या कम हो जाएगी। चूंकि यह एक सापेक्ष इकाई है, इसकी तुलना करने के लिए आधारभूत आधार की आवश्यकता है। यह बेसलाइन एक 160 डीपीआई स्क्रीन है। यह समीकरण है:px = dp * (dpi / 160).


2) sp: (scale independent pixels)

यह इकाई स्क्रीन डीपीआई (डीपी के समान) के साथ-साथ उपयोगकर्ता के फ़ॉन्ट आकार वरीयता के अनुसार स्केल करती है।


3) px: (pixels)

स्क्रीन पर वास्तविक पिक्सल या डॉट्स।


अधिक जानकारी के लिए आप जा सकते हैं

एंड्रॉइड डेवलपर गाइड> आयाम
एंड्रॉइड डेवलपर गाइड> स्क्रीन


एंड्रॉइड डेवलपर दस्तावेज़ीकरण से :

  1. पिक्सल
    पिक्सल - स्क्रीन पर वास्तविक पिक्सेल से मेल खाता है।

  2. में
    इंच - स्क्रीन के भौतिक आकार के आधार पर।
    1 इंच = 2.54 सेंटीमीटर

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

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

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

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

एंड्रॉइड में घनत्व स्वतंत्रता को समझने से:

+----------------+----------------+---------------+-------------------------------+
| Density Bucket | Screen Density | 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 | 
+----------------+----------------+---------------+-------------------------------+
+---------+-------------+---------------+-------------+--------------------+
| Unit    | Description | Units Per     | Density     | Same Physical Size | 
|         |             | Physical Inch | Independent | On Every Screen    | 
+---------+-------------+---------------+-------------+--------------------+
| px      | Pixels      | Varies        | No          | No                 | 
+---------+-------------+---------------+-------------+--------------------+
| in      | Inches      | 1             | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| mm      | Millimeters | 25.4          | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| pt      | Points      | 72            | Yes         | Yes                | 
+---------+-------------+---------------+-------------+--------------------+
| dp      | Density     | ~160          | Yes         | No                 | 
|         | Independent |               |             |                    | 
|         | Pixels      |               |             |                    | 
+---------+-------------+---------------+-------------+--------------------+
| sp      | Scale       | ~160          | Yes         | No                 | 
|         | Independent |               |             |                    | 
|         | Pixels      |               |             |                    | 
+---------+-------------+---------------+-------------+--------------------+

Google डिज़ाइन दस्तावेज़ीकरण में अधिक जानकारी भी मिल सकती है।

वास्तविक डिवाइस पर आयामों की गणना करने के लिए this ऐप का उपयोग किया जा सकता है।


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

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

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

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

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


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

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

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

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

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

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

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

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

px = 60 * (240 / 160)

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

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 पसंद करता हूं ।

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


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

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

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

पीटी पॉइंट्स - स्क्रीन के भौतिक आकार के आधार पर एक इंच का 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

स्क्रीन का आकार एंड्रॉयड में श्रेणियों में बांटा गया है 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समान आधार इकाई है, लेकिन उपयोगकर्ता के पसंदीदा टेक्स्ट आकार (यह एक स्केल-स्वतंत्र पिक्सेल है) द्वारा स्केल किया गया है, इसलिए पाठ आकार को परिभाषित करते समय आपको इस माप इकाई का उपयोग करना चाहिए


इस सवाल का जवाब देने से पहले मुझे पहले इकाइयों की संख्या कम करने दें। तो यहां आप जाते हैं: डीपी या डुबकी दोनों समान हैं और घनत्व-स्वतंत्र पिक्सल के रूप में जाना जाता है ।

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

उदाहरण के लिए, यदि आप आकार 200 पीएक्स * 200 पीएक्स की एक छवि खींचते हैं , तो इसकी उपस्थिति उच्च-रिज़ॉल्यूशन डिवाइस पर कम-रिज़ॉल्यूशन डिवाइस बनाम अलग होनी चाहिए। कारण एक कम-रिज़ॉल्यूशन फोन पर 200 पीएक्स छवि उच्च-रिज़ॉल्यूशन डिवाइस की तुलना में बड़ी दिखाई देगी।

छवियों के नीचे विभिन्न फोन पर एक ही छवि का एक संकल्प दिखा रहे हैं -

  • उच्च स्क्रीन संकल्प के साथ फोन

  • कम स्क्रीन संकल्प के साथ फोन

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

  • छवि जो 80px (बाएं तरफ छवि) और 80 डीपी (दाएं तरफ छवि) दिखा रही है । चेकआउट अंतर

एक डीपी 160 के घनत्व वाले स्क्रीन पर एक भौतिक पिक्सेल के बराबर है । डीपी की गणना करने के लिए:

डीपी = (पिक्सेल में चौड़ाई * 160) / स्क्रीन घनत्व

3. एसपी - स्केलेबल पिक्सल के लिए खड़ा है। आमतौर पर यूआई पर ग्रंथों के लिए एसपी का उपयोग किया जाता है, और एसपी फ़ॉन्ट सेटिंग्स को संरक्षित करता है। उदाहरण के लिए, यदि उपयोगकर्ता ने 30 एसपी से बड़ा फ़ॉन्ट चुना है तो यह उपयोगकर्ता वरीयता के अनुसार बड़े पैमाने पर दिखाई देने के लिए ऑटो स्केल करेगा।


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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

एक घनत्व स्वतंत्र पिक्सेल (डीपी या डुबकी) बेसलाइन घनत्व या 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





units-of-measurement