android - विभिन्न संकल्प समर्थन एंड्रॉइड




android-custom-view android-xml (6)

संपादित प्रश्न:

मोबाइल संकल्प:
मैं निम्नलिखित संकल्पों की तरह विभिन्न स्क्रीन डीपीआई डिजाइन करना चाहता हूं।
320x480,
480 × 800,
540x960,
720x1280 (सैमसंग एस 3),
1080x1920 (एस 4, नेक्सस 5, नेक्सस 5x, मोटो जी 4),
2560 x 1440 (नेक्सस 6, नेक्सस 6 पी, सैमसंग एज)

टैबलेट संकल्प:
480x800 (माइक्रोमैक्स),
600x1024 (सैमसंग टैब 2),
800x1280 (नेक्सस 7)
1200x1920 (नया नेक्सस 7),
2048x1536 (नेक्सस 9)

मैं डिवाइस डिस्प्ले रिज़ॉल्यूशन के आधार पर विभिन्न फ़ॉन्ट आकारों का उपयोग करना चाहता हूं।

प्रश्न 1) इस problem को हल करने का best तरीका क्या है?

प्रश्न 2) फेंक कोडिंग या एक्सएमएल करने का सबसे अच्छा विकल्प क्या है?

क्यू 3) कौन सा ड्रॉ करने योग्य फ़ोल्डर दर्शाता है कि कौन सा डिवाइस रिज़ॉल्यूशन है?

प्रश्न 4) विभिन्न संकल्प के लिए एप्लिकेशन लॉन्चर आइकन आकार?


असल में आपको टेक्स्ट स्टाइल बनाने की ज़रूरत है:

<style name="CodeFont">
    <item name="android:textSize">30sp</item>
</style>

इसके बारे में यहां और पढ़ें http://developer.android.com/guide/topics/ui/themes.html

और अलग-अलग स्क्रीन के लिए एंड्रॉइड समर्थन का उपयोग करके विभिन्न आकारों को बनाने के लिए सही आकार फ़ोल्डर्स में वर्णित करें: http://developer.android.com/guide/practices/screens_support.html

साइड नोट: मैं वास्तव में समझ नहीं पा रहा हूं कि आप किस स्थिति में ऐसा करना चाहते हैं, फ़ॉन्ट आकारों के लिए एसपी इकाइयों का उपयोग करके फोंट को विभिन्न फोनों पर समान आकार को कम या कम दिखने के लिए स्केल किया जाएगा।


नेक्सस 6 डिवाइस समर्थन के लिए, Drawable-560dpi फ़ोल्डर बनाएं और इसमें सभी छवियां डालें।


मुझे लगता है कि यह एक अच्छा जवाब है:

पाठ आकार और विभिन्न एंड्रॉइड स्क्रीन आकार

लेकिन यहां स्क्रीन रिज़ॉल्यूशन के साथ आप इसे कैसे कर सकते हैं:

आप प्रत्येक रिज़ॉल्यूशन के लिए "मान" संसाधन निर्देशिका बना सकते हैं

values-wWIDTHp-hHEIGHTdp (you can also use values-wWIDTHp or values-hHEIGHTdp)
for example: 320*480 will be values-w320p-h480dp

प्रत्येक डीआईआर (डिफ़ॉल्ट मान डीआईआर सहित) में सामग्री के साथ "dimens.xml" नाम की एक फ़ाइल बनाएं:

 for exmaple (the value related to the resolution):
 <dimen name="def_font_size">10sp</dimen>

अब आप "@ dimen / def_font_size" का उपयोग कर सकते हैं या डिफ़ॉल्ट मान निर्देशिका में शैली बना सकते हैं।

इसे "styles.xml" में जोड़ें:

<style name="FontSize">
    <item name="android:textSize">@dimen/def_font_size</item>
</style>

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

public float convertFromDp(int input) {
    final float scale = getResources().getDisplayMetrics().density;
    return ((input - 0.5f) / scale);
}

सरल रूप से नीचे दिए गए पाठ दृश्य आकार को दिए गए मान को सरल रूप से दें

tvTextView1.setTextSize(convertFromDp(24));

सबसे पहले आप अलग-अलग स्क्रीन के लिए अलग-अलग मान फ़ोल्डर्स बनाते हैं। और आकार को स्क्रीन के अनुसार res->values->dimens.xml फ़ाइल में रखें और "@dimen/text_size" का उपयोग करके सरल फ़ॉन्ट आकार को कॉल करें।

res/values/dimens.xml    
res/values-small/dimens.xml    
res/values-normal/dimens.xml    
res/values-xlarge/dimens.xml

//for small    
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="text_size">15sp</dimen>
</resources>

//for normal    
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="text_size">20sp</dimen>
</resources>

//for large    
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="text_size">30sp</dimen>
</resources>

//for xlarge    
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <dimen name="text_size">40sp</dimen>
</resources>

और नीचे दिए गए अनुसार TextView में फ़ॉन्ट आकार पुनर्प्राप्त करें।

<TextView
    android:id="@+id/lblHeader"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"           
    android:textSize="@dimen/text_size"
    android:textStyle="bold"
    android:typeface="serif" />

विभिन्न संकल्प के लिए पिक्सेल में ऐप लॉन्चर आइकन आकार

मोबाइल संकल्प

  • mipmap-mdpi (48X48)
  • मिपमैप-एचडीपीआई (72X72)
  • मिपमैप-एक्सएचडीपीआई (9 6 एक्स 6 9 6)
  • mipmap-xxhdpi (144X144)
  • mipmap-xxxhdpi (1 9 2 एक्स 1 9 2)

टैबलेट लेआउट:

यदि आप टेबलेट-विशिष्ट लेआउट रखना चाहते हैं तो निम्न फ़ोल्डरों का उपयोग करें:

layout-large-mdpi   (1024x600)
layout-large-tvdpi  (800x1280)
layout-large-xhdpi  (1200x1920)
layout-xlarge-mdpi  (1280x800)
layout-xlarge-xhdpi (2560x1600)

ड्रॉबेल फ़ोल्डर्स:

  1. मोबाइल

    res/drawable        (default)
    res/drawable-ldpi/  (240x320 and nearer resolution)
    res/drawable-mdpi/  (320x480 and nearer resolution)
    res/drawable-hdpi/  (480x800, 540x960 and nearer resolution)
    res/drawable-xhdpi/  (720x1280 - Samsung S3, Micromax Canvas HD etc)
    res/drawable-xxhdpi/ (1080x1920 - Samsung S4, HTC one, Nexus 5, etc)
    res/drawable-xxxhdpi/ (1440X2560 - Nexus 6,Samsung S6edge).
    
  2. टैबलेट संकल्प:

    फ़ॉन्ट आकार:

नोट: जब भी आप textSize textsize=12sp , तो हमेशा SP का उपयोग करने का प्रयास करें, जैसे textsize=12sp

  1. पूर्वनिर्धारित textAppearance प्रयोग textAppearance :

    यह डिवाइस घनत्व के अनुसार स्वचालित रूप से टेक्स्ट आकार सेट करेगा।

    <TextView android:textAppearance="?android:attr/textAppearanceSmall"/>
    <TextView android:textAppearance="?android:attr/textAppearanceMedium"/>
    <TextView android:textAppearance="?android:attr/textAppearanceLarge" />
    

    नमूना उपयोग:

    <TextView
        style="@android:style/TextAppearance.Small"
        android:text="Sample Text - Small" />
    <TextView
        style="@android:style/TextAppearance.Medium"
        android:text="Sample Text  - Medium" />
    <TextView
        style="@android:style/TextAppearance.Large"
        android:text="Sample Text  - Large" />
    
  2. प्रत्येक डिवाइस के लिए dimension.xml प्रयोग करें:

    Google आईओ पीडीएफ से , हम नीचे संरचना देखें:

    1. मोबाइल:

      res/values/dimens.xml(default)
      res/values-ldpi/dimens.xml   (240x320 and nearer resolution)
      res/values-mdpi/dimens.xml   (320x480 and nearer resolution)
      res/values-hdpi/dimens.xml   (480x800, 540x960 and nearer resolution)
      res/values-xhdpi/dimens.xml  (720x1280 - Samsung S3, Micromax Canvas HD, etc)
      res/values-xxhdpi/dimens.xml (1080x1920 - Samsung S4, HTC one, etc)
      

      res / values-xxxhdpi / dimens.xml (1440X2560 - नेक्सस 6, सैमसंग S6edge)।

    2. गोली:

      टैबलेट के लिए आप अधिक विशिष्ट फ़ोल्डर जैसे values-xlarge , values-large उपयोग कर सकते हैं।

      res/values-large/dimens.xml      (480x800)
      res/values-large-mdpi/dimens.xml (600x1024)
      

      या

      res/values-sw600dp/dimens.xml      (600x1024)
      res/values-sw720dp/dimens.xml      (800x1280)
      res/values-xlarge-xhdpi/dimens.xml (2560x1600 - Nexus 10")
      res/values-large-xhdpi/dimens.xml  (1200x1920 - Nexus 7"(latest))
      

अधिक जानकारी के लिए:

  1. एकाधिक स्क्रीन का समर्थन करने के लिए देखें।

  2. डिज़ाइन डिवाइस घनत्व के लिए Google IO Pdf का पृष्ठ # 77 देखें। उसमें, आपको विभिन्न अलग-अलग उपकरणों के लिए dimens.xml को संभालने का तरीका मिलेगा।

  3. अपने ऐप्स को नेक्सस 6 और नेक्सस 9 के लिए तैयार करना।

एकाधिक स्क्रीन का समर्थन करने से उद्धरण:

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





screen-resolution