खोज…


टिप्पणियों

नियम और अवधारणाएँ

स्क्रीन का आकार

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

स्क्रीन घनत्व

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

अभिविन्यास

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


इकाइयों

  • पिक्सल

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

  • में

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

  • मिमी

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

  • pt

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

  • डीपी या डुबकी

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

  • एसपी

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


इकाई विवरण शारीरिक इंच प्रति यूनिट घनत्व स्वतंत्र हर स्क्रीन पर समान भौतिक आकार
पिक्सल पिक्सल भिन्न नहीं नहीं
में इंच 1 हाँ हाँ
मिमी मिलीमीटर 25.4 हाँ हाँ
pt अंक 72 हाँ हाँ
डी पी घनत्व स्वतंत्र पिक्सेल ~ 160 हाँ नहीं
एसपी स्केल स्वतंत्र पिक्सेल ~ 160 हाँ नहीं

संदर्भ:

कॉन्फ़िगरेशन क्वालिफायर का उपयोग करना

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

कॉन्फ़िगरेशन क्वालिफायर का उपयोग करने के लिए:

  1. अपने प्रोजेक्ट के Res / निर्देशिका में एक नई निर्देशिका बनाएं और प्रारूप का उपयोग करके इसे नाम दें: <resources_name>-<qualifier><resources_name> मानक संसाधन नाम है (जैसे कि ड्रा करने योग्य या लेआउट)।
  2. <qualifier> एक कॉन्फ़िगरेशन क्वालिफायर है, जो स्क्रीन कॉन्फ़िगरेशन को निर्दिष्ट करता है जिसके लिए इन संसाधनों का उपयोग किया जाता है (जैसे कि एचडीपीआई या एक्सलर)।

उदाहरण के लिए, निम्न अनुप्रयोग संसाधन निर्देशिकाएँ अलग-अलग स्क्रीन आकार और अलग-अलग डिज़ाइन के लिए अलग-अलग लेआउट डिज़ाइन प्रदान करती हैं। लॉन्चर आइकनों के लिए mipmap/ फ़ोल्डरों का उपयोग करें।

res/layout/my_layout.xml              // layout for normal screen size ("default")
res/layout-large/my_layout.xml        // layout for large screen size
res/layout-xlarge/my_layout.xml       // layout for extra-large screen size
res/layout-xlarge-land/my_layout.xml  // layout for extra-large in landscape orientation

res/drawable-mdpi/graphic.png         // bitmap for medium-density
res/drawable-hdpi/graphic.png         // bitmap for high-density
res/drawable-xhdpi/graphic.png        // bitmap for extra-high-density
res/drawable-xxhdpi/graphic.png       // bitmap for extra-extra-high-density

res/mipmap-mdpi/my_icon.png         // launcher icon for medium-density
res/mipmap-hdpi/my_icon.png         // launcher icon for high-density
res/mipmap-xhdpi/my_icon.png        // launcher icon for extra-high-density
res/mipmap-xxhdpi/my_icon.png       // launcher icon for extra-extra-high-density
res/mipmap-xxxhdpi/my_icon.png      // launcher icon for extra-extra-extra-high-density

डीपी और एसपी को पिक्सल में बदलना

जब आपको Paint.setTextSize जैसी किसी चीज़ के लिए पिक्सेल मान सेट करने की आवश्यकता होती है, लेकिन फिर भी यह डिवाइस के आधार पर बढ़ाया जाता है, तो आप dp और sp मानों को परिवर्तित कर सकते हैं।

DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
float pixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, 12f, metrics);

DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
float pixels = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 12f, metrics);

वैकल्पिक रूप से, यदि आप संसाधन को लोड करने के लिए संदर्भ रखते हैं, तो आप आयाम संसाधन को पिक्सेल में बदल सकते हैं।

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="size_in_sp">12sp</dimen>
    <dimen name="size_in_dp">12dp</dimen>
</resources>

// Get the exact dimension specified by the resource
float pixels = context.getResources().getDimension(R.dimen.size_in_sp);
float pixels = context.getResources().getDimension(R.dimen.size_in_dp);

// Get the dimension specified by the resource for use as a size.
// The value is rounded down to the nearest integer but is at least 1px.
int pixels = context.getResources().getDimensionPixelSize(R.dimen.size_in_sp);
int pixels = context.getResources().getDimensionPixelSize(R.dimen.size_in_dp);

// Get the dimension specified by the resource for use as an offset.
// The value is rounded down to the nearest integer and can be 0px.
int pixels = context.getResources().getDimensionPixelOffset(R.dimen.size_in_sp);
int pixels = context.getResources().getDimensionPixelOffset(R.dimen.size_in_dp);

पाठ का आकार और विभिन्न Android स्क्रीन आकार

कभी-कभी, केवल तीन विकल्प रखना बेहतर होता है

 style="@android:style/TextAppearance.Small"
 style="@android:style/TextAppearance.Medium"
 style="@android:style/TextAppearance.Large"

सामान्य स्क्रीन आकार से अंतर करने के लिए छोटे और बड़े का उपयोग करें।

<TextView
        android:id="@+id/TextViewTopBarTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@android:style/TextAppearance.Small"/>

सामान्य के लिए, आपको कुछ भी निर्दिष्ट करने की आवश्यकता नहीं है।

<TextView
        android:id="@+id/TextViewTopBarTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

इसका उपयोग करके, आप विभिन्न स्क्रीन आकारों के आयामों के परीक्षण और निर्दिष्ट करने से बच सकते हैं।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow