2012-03-26 25 views
91

मुझे पता है, यह पहले से ही 1000 बार चर्चा की गई थी, लेकिन मैं विभिन्न स्क्रीन आकारों के लिए टेक्स्ट आकार को समायोजित नहीं कर सकता।टेक्स्ट आकार और विभिन्न एंड्रॉइड स्क्रीन आकार

<style name="CustumButtonStyle" parent="@android:style/Widget.Button"> 
    ... 
    <item name="android:textSize">30sp</item> 
    ... 
</style> 

2,7 QVGA में यह ठीक लग रहा है: मैं अपने कस्टम शैली में आकार इकाइयों के रूप में 'एसपी' इस्तेमाल करने की कोशिश

2.7QVGA 30sp http://u.pikucha.ru/i8CRP/1.jpeg

लेकिन 7in WSVGA में यह इस तरह दिखता है:

7in WSVGA 30sp http://u.pikucha.ru/i8CRQ/2.jpeg

मैंने एक ही परिणाम के साथ 'sp' और 'dp' दोनों का उपयोग करने का प्रयास किया है।

क्या आप कृपया बता सकते हैं कि इन बटनों को किसी भी स्क्रीन पर कैसे दिखाना है?

पूर्ण कस्टम बटन शैली

<style name="CustumButtonStyle" parent="@android:style/Widget.Button"> 
    <item name="android:background">@drawable/custom_button</item> 
    <item name="android:layout_width">fill_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:layout_margin">3dp</item> 
    <item name="android:textColor">#ffffff</item> 
    <item name="android:gravity">center</item> 
    <item name="android:textSize">30sp</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:shadowColor">#000000</item> 
    <item name="android:shadowDx">1</item> 
    <item name="android:shadowDy">1</item> 
    <item name="android:shadowRadius">2</item> 
</style> 

और अपने आवेदन विषय में मैं

<item name="android:buttonStyle">@style/CustumButtonStyle</item> 

है और वहाँ मेरी लेआउट है:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/RelativeLayout1" 
android:layout_width="fill_parent" 
android:background="@drawable/grid" 
android:gravity="center" 
android:orientation="vertical" android:layout_height="fill_parent"> 

<Button 
    android:id="@+id/buttonContinue" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_gravity="center" 
    android:gravity="center" 
    android:text="@string/continue_game" android:layout_marginTop="3dp" android:layout_marginBottom="3dp"/> 



<Button 
    android:id="@+id/buttonNewGame" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/buttonContinue" 
    android:layout_alignRight="@+id/buttonContinue" 
    android:layout_below="@+id/buttonContinue" 
    android:layout_gravity="center" 
    android:gravity="center" 
    android:text="@string/new_game" android:layout_marginTop="3dp" android:layout_marginBottom="3dp"/> 



<Button 
    android:id="@+id/ButtonAbout" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/buttonNewGame" 
    android:layout_alignRight="@+id/buttonNewGame" 
    android:layout_below="@+id/buttonNewGame" 
    android:layout_gravity="center" 
    android:gravity="center" 
    android:text="@string/about" android:layout_marginTop="3dp" android:layout_marginBottom="3dp"/> 

+0

आपकी स्क्रीन पर वे समान दिखते हैं। सुनिश्चित करें कि आपका दर्शक स्केल 100% –

+0

है क्या आप बटन विशेषताएँ लिख सकते हैं जिनका आप उपयोग कर रहे हैं? टेक्स्ट आकार में आपकी समस्या से कोई लेना देना नहीं है। – PravinCG

+0

@PravinCG मैंने कुछ जानकारी जोड़ दी है, कृपया पहले पोस्ट – forcelain

उत्तर

133

@forcelain मुझे लगता है कि आपको यह Google IO Pdf for Design जांचना होगा। कि पीडीएफ में करने के लिए पृष्ठ नहीं जाना:

res/values/dimens.xml 

res/values-small/dimens.xml 

res/values-normal/dimens.xml 

res/values-large/dimens.xml 

res/values-xlarge/dimens.xml 

उदाहरण के लिए आप में dimens.xml नीचे का इस्तेमाल किया है: 77 है जिसमें आप कैसे वहाँ उदाहरण के लिए एंड्रॉयड के विभिन्न उपकरणों के लिए dimens.xml उपयोग करने के लिए सुझाव दे संरचना नीचे देखें मिलेगा मान।

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

अन्य मूल्य फ़ोल्डर में आपको अपने टेक्स्ट आकार के लिए मूल्यों को बदलने की आवश्यकता है।

नोट: जैसा कि @espinchi द्वारा संकेत दिया गया है, छोटे, सामान्य, बड़े और xlarge को एंड्रॉइड 3 के बाद से हटा दिया गया है।2 निम्नलिखित के पक्ष में:

Declaring Tablet Layouts for Android 3.2

Android 3.0 चल गोलियाँ की पहली पीढ़ी के लिए, उचित रास्ता गोली लेआउट घोषित करने के लिए xlarge विन्यास क्वालीफायर के साथ एक निर्देशिका में उन्हें डाल करने के लिए (था उदाहरण के लिए, res/layout-xlarge /)। विशेष रूप से अन्य प्रकार के टैबलेट और स्क्रीन आकारों को समायोजित करने के लिए क्रम में, 7 "टैबलेट-एंड्रॉइड 3.2 अधिक अलग स्क्रीन आकारों के लिए संसाधन निर्दिष्ट करने का एक नया तरीका प्रस्तुत करता है। नई तकनीक आपके लेआउट की जगह पर आधारित है जरूरत है, (जैसे कि चौड़ाई का 600dp के रूप में) बल्कि अपने लेआउट सामान्यीकृत आकार समूहों (बड़े या xlarge के रूप में इस तरह के) फिट बनाने के लिए कोशिश कर रहा से।

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

उदाहरण के लिए, टेबलेट-स्टाइल डिवाइस के लिए आप जिस लेआउट को डिज़ाइन करना चाहते हैं, उसके बाद आप यह निर्धारित कर सकते हैं कि लेआउट अच्छी तरह से काम करता है जब स्क्रीन 600 डीपी चौड़ी से कम हो। यह थ्रेसहोल्ड इस प्रकार आपके टैबलेट लेआउट के लिए आवश्यक न्यूनतम आकार बन जाता है। इस प्रकार, अब आप निर्दिष्ट कर सकते हैं कि ये लेआउट संसाधन होना चाहिए जब आपके एप्लिकेशन के UI के लिए कम से कम 600 डीपी चौड़ाई उपलब्ध हो।

आपको या तो अपने न्यूनतम आकार, के रूप में चौड़ाई और डिज़ाइन चुनना चाहिए या पूर्ण होने पर आपके लेआउट का सबसे छोटा चौड़ाई क्या है इसका परीक्षण करें।

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

अलग संसाधन विन्यास है कि आप अंतरिक्ष अपने लेआउट के लिए उपलब्ध के आधार पर निर्दिष्ट कर सकते हैं का उपयोग करते हुए तालिका 2. में संक्षेप ये नई क्वालिफायर, आप विशिष्ट स्क्रीन पर अधिक नियंत्रण आकार आपके एप्लिकेशन द्वारा समर्थित की पेशकश पारंपरिक स्क्रीन आकार समूहों (छोटे, सामान्य, बड़े, और xlarge) की तुलना में।

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

तालिका 2. स्क्रीन आकार के लिए नए कॉन्फ़िगरेशन क्वालीफायर ( एंड्रॉइड 3.2 में पेश किया गया)। स्क्रीन विन्यास क्वालीफायर को महत्व देता है विवरण smallestWidth swdp

उदाहरण:

एक स्क्रीन के मौलिक आकार sw720dp sw600dp, के रूप में उपलब्ध स्क्रीन क्षेत्र के कम से कम आयाम ने संकेत दिया। विशेष रूप से, डिवाइस का सबसे छोटा विड्थ स्क्रीन की उपलब्ध ऊंचाई और चौड़ाई का सबसे छोटा है (आप इसे स्क्रीन के लिए "सबसे छोटी संभव चौड़ाई" के रूप में भी सोच सकते हैं)। आप इस क्वालीफायर का उपयोग यह सुनिश्चित करने के लिए कर सकते हैं कि स्क्रीन की वर्तमान ओरिएंटेशन के बावजूद, आपके एप्लिकेशन के कम से कम डीआईपीएस चौड़ाई उपलब्ध है।

उदाहरण के लिए, अगर अपने लेआउट की आवश्यकता है कि स्क्रीन क्षेत्र के अपने सबसे छोटे आयाम हर समय कम से कम 600 डी पी हो, तो आप इस क्वालीफायर बनाने के लिए लेआउट संसाधन, रेस/लेआउट-sw600dp/उपयोग कर सकते हैं। सिस्टम केवल इन संसाधनों का उपयोग करेगा जब उपलब्ध स्क्रीन का सबसे छोटा आयाम कम से कम 600 डीपी है, भले ही 600dp पक्ष उपयोगकर्ता द्वारा देखी गई ऊंचाई या चौड़ाई है। सबसे छोटा विड्थ डिवाइस की निश्चित स्क्रीन आकार विशेषता है; डिवाइस की स्क्रीन की ओरिएंटेशन बदलते समय सबसे छोटी Width नहीं बदलती है।

किसी डिवाइस की सबसे छोटी चौड़ाई खाता स्क्रीन सजावट और सिस्टम UI में ले जाती है। उदाहरण के लिए, यदि डिवाइस पर स्क्रीन पर कुछ लगातार यूआई तत्व हैं जो अक्षांश के अक्ष के साथ स्थान के लिए खाते हैं, तो सिस्टम वास्तविक स्क्रीन आकार की तुलना में छोटे 0Vछोटे घोड़े की घोषणा करता है, क्योंकि वे स्क्रीन पिक्सेल उपलब्ध नहीं हैं आपके यूआई के लिए।

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

उदाहरण: w1024dp

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

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

उदाहरण: h720dp h1024dp आदि

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

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

इन क्वालीफायरों का उपयोग करते समय स्क्रीन आकार समूहों का उपयोग करने से अधिक जटिल लग सकता है, यह आपके यूआई के लिए निर्धारित करने के बाद वास्तव में सरल होना चाहिए। जब आप अपना यूआई डिज़ाइन करते हैं, तो मुख्य बात आप शायद वास्तविक आकार के बारे में परवाह करते हैं जिस पर आपका एप्लिकेशन हैंडसेट-शैली UI और टैबलेट-शैली UI के बीच स्विच करता है जो एकाधिक पैन का उपयोग करता है। इस स्विच का सटीक बिंदु आपके विशेष डिज़ाइन पर निर्भर करेगा-शायद आपको अपने टैबलेट लेआउट के लिए 720 डीपी चौड़ाई की आवश्यकता है, शायद 600 डीपी पर्याप्त है, या 480 डीपी, या इनके बीच कुछ संख्या है। तालिका 2 में इन क्वालीफायरों का का उपयोग करके, आप पर सटीक आकार के नियंत्रण में हैं जो आपका लेआउट बदलता है।

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

आप विभिन्न प्रकार के उपकरणों के लिए अपने डिजाइन के कुछ लक्षित करने में सहायता करने के लिए, यहाँ ठेठ स्क्रीन चौड़ाई के लिए कुछ नंबर हैं:

320dp: a typical phone screen (240x320 ldpi, 320x480 mdpi, 480x800 hdpi, etc). 
480dp: a tweener tablet like the Streak (480x800 mdpi). 
600dp: a 7” tablet (600x1024 mdpi). 
720dp: a 10” tablet (720x1280 mdpi, 800x1280 mdpi, etc). 

तालिका 2 से आकार क्वालिफायर का उपयोग करना, आपके आवेदन स्विच कर सकते हैं का उपयोग करके हैंडसेट और टैबलेट के लिए अपने विभिन्न लेआउट संसाधनों के बीच जो भी आप चौड़ाई और/या ऊंचाई के लिए चाहते हैं।उदाहरण के लिए, यदि 600dp छोटे उपलब्ध चौड़ाई अपने टेबलेट लेआउट द्वारा समर्थित है, तो आप इन दो सेट लेआउट के प्रदान कर सकते हैं:

रेस/लेआउट/main_activity.xml # हैंडसेट के लिए रेस/लेआउट-sw600dp/main_activity। xml # गोलियों के लिए

इस मामले में, उपलब्ध स्क्रीन स्पेस की सबसे छोटी चौड़ाई टैबलेट लेआउट को लागू करने के लिए 600dp होना चाहिए।

अन्य मामलों जिसमें आप आगे इस तरह 7 के रूप में आकार के बीच अंतर "और 10" टेबलेट के लिए अपने यूआई अनुकूलित के लिए

, आप अतिरिक्त छोटी से छोटी चौड़ाई लेआउट को परिभाषित कर सकते हैं:

रेस/लेआउट/main_activity.xml # हैंडसेट (छोटे से 600dp उपलब्ध चौड़ाई) रेस/लेआउट-sw600dp/main_activity.xml # 7 के लिए " टैबलेट (600dp व्यापक और बड़ा) रेस/लेआउट-sw720dp/main_activity.xml

10 के लिए" टेबलेट के लिए (720 डीपी चौड़ा और बड़ा)

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

हालांकि, कुछ मामलों में, आपके लेआउट के लिए महत्वपूर्ण क्या हो सकता है वास्तव में कितनी चौड़ाई या ऊंचाई वर्तमान में उपलब्ध है। उदाहरण के लिए, यदि आपके पास दो खंडों के साथ दो-फलक लेआउट है, तो जब भी स्क्रीन कम से कम 600 डीपी चौड़ाई प्रदान करती है, चाहे डिवाइस लैंडस्केप या पोर्ट्रेट अभिविन्यास में हो, तो इसका उपयोग करना चाहें। में इस मामले में, अपने संसाधनों इस प्रकार दिखाई देंगे:

रेस/लेआउट/main_activity.xml # हैंडसेट (छोटे से 600dp उपलब्ध चौड़ाई) रेस/लेआउट-w600dp/main_activity.xml # बहु फलक के लिए (किसी भी 600 डीपी उपलब्ध चौड़ाई या अधिक के साथ स्क्रीन)

ध्यान दें कि दूसरा सेट "उपलब्ध चौड़ाई" क्वालीफायर, wdp का उपयोग कर रहा है। इस तरह, एक डिवाइस वास्तव में स्क्रीन के अभिविन्यास पर के आधार पर दोनों लेआउट का उपयोग कर सकता है (यदि उपलब्ध चौड़ाई कम से कम 600 डीपी एक अभिविन्यास में है और अन्य अभिविन्यास में 600 डीपी से कम है)।

यदि उपलब्ध ऊंचाई आपके लिए चिंता का विषय है, तो आप एचडीपी क्वालीफायर का उपयोग कर कर सकते हैं। या, अगर आपको वास्तव में विशिष्ट होने की आवश्यकता है तो भी wdp और hdp क्वालीफायर को गठबंधन करें।

+1

लिंक मर चुका है, कृपया – Boy

+0

को ठीक करें @ बॉय हाँ मुझे वह पीडीएफ मिलेगा और जल्द ही इसे अपडेट करेगा – Herry

+7

इस छोटे/सामान्य/बड़े/xlarge इस समय (दिसंबर 2014) को बहिष्कृत कर दिया गया है। पसंदीदा तरीका अब "swxxxdp" का उपयोग कर रहा है। Http://developer.android.com/guide/practices/screens_support.html#range – espinchi

7

मैं भी ऐसा ही किया आयाम और पेंट द्वारा की तरह कुछ (डी पी के साथ है, लेकिन केवल पाठ के लिए और drawText में())

एक्सएमएल:

<dimen name="text_size">30sp</dimen> 

कोड:

Paint p =new Paint(); 
     p.setTextSize(getResources().getDimension(R.dimen.text_Size)); 
+4

आपको टेक्स्ट आकार के लिए 'dp' का उपयोग नहीं करना चाहिए ... इसके बजाय' sp' का उपयोग करें। –

+0

कृपया टेक्स्ट आकार – Thinsky

2

मुझे लगता है कि आप संग्रह कर सकते हैं कि द्वारा प्रत्येक के लिए कई लेआउट संसाधन जोड़ने स्क्रीन आकार, उदाहरण:

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

संदर्भ: 1. http://developer.android.com/guide/practices/screens_support.html

+1

के लिए स्पैम का उपयोग करें res/values-छोटे का उपयोग करें बेहतर हो सकता है। – einverne

+0

खराब कार्यान्वयन में से एक। हमें अलग-अलग आकारों का समर्थन करने के लिए केवल 5 लेआउट बनाए रखना है? – SolidSnake

-2

आकारों को हार्डकोड न करें।-

लचीलापन विज्ञापन नई स्क्रीन संकल्प के लिए सबसे अच्छा अभ्यास लेआउट में डमी TextView जगह textSize प्राप्त करने के लिए है:

<TextView 
     android:id="@+id/dummyTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:visibility="gone" 
     android:text="TextView" /> 

और उदाहरण के लिए अपने कोड में:

TextView testTextView = (TextView) rootView.findViewById(R.id.dummyTextView); 
float textSize = testTextView.getTextSize(); 

रखें textSize के रूप में एक संदर्भ जिसमें आप स्थिर या percetage आकार (गणना करके) जोड़ सकते हैं।

6

कभी कभी, यह केवल तीन विकल्प

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

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

<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"/> 

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

-1

जैसा कि 3.2 (एपीआई स्तर 13) आकार समूहों से उल्लिखित @espinchi के रूप में बहिष्कृत किया गया है। Screen size ranges आगे बढ़ने वाले पसंदीदा दृष्टिकोण हैं।

4

मुझे लगता है कि इस धागे पर उत्तर देने में बहुत देर हो चुकी है। लेकिन मैं अंतर संकल्प उपकरणों पर पाठ आकार की समस्या को हल करने के लिए अपना विचार या तरीका साझा करना चाहता हूं। कई एंड्रॉइड डेवलपर साइट्स का सुझाव है कि हमें पाठ आकार के लिए SP इकाई का उपयोग करना होगा जो अंतर रिज़ॉल्यूशन डिवाइस के लिए टेक्स्ट आकार को संभालेगा। लेकिन मैं हमेशा वांछित परिणाम प्राप्त करने में असमर्थ हूं। तो मुझे एक समाधान मिला है जिसे मैं अपनी पिछली 4-5 परियोजनाओं और इसके कामकाजी जुर्माना से उपयोग कर रहा हूं। मेरे सुझाव के अनुसार, आपको प्रत्येक रिज़ॉल्यूशन डिवाइस के लिए टेक्स्ट आकार रखना होगा, जो थोड़ा कठिन काम है, लेकिन यह आपकी आवश्यकता को पूरा करेगा। प्रत्येक डेवलपर को 4: 6: 8: 12 (एच: xh: xxh: xxxh क्रमशः) जैसे अनुपात के बारे में सुनना होगा। अब आपकी परियोजना के अंदर res फ़ोल्डर आपको 4 फ़ोल्डर को dimens फ़ाइल के साथ बनाना है उदा।

  1. res/values-hdpi/dimens.xml
  2. res/values-xhdpi/dimens.xml
  3. res/values-xxhdpi/dimens.xml
  4. res/values-xxxhdpi/dimens। xml

अब dimens.xml फ़ाइल के अंदर आपको टेक्स्ट आकार रखना होगा। मैं आपको मूल्य-hdpi के लिए कोड दिखा रहा हूं, इसी प्रकार आपको अन्य रिज़ॉल्यूशन मान/dimens.xml फ़ाइल के लिए कोड रखना होगा।

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="text_size">4px</dimen> 
</resources> 

अन्य प्रस्तावों के लिए ये ऐसा xhdpi है: 6px, xxhdpi: 8px, xxxhdpi: 12px। यह अनुपात (3: 4: 6: 8: 12) के साथ गणना की गई है मैंने ऊपर लिखा है। चलिए उपरोक्त अनुपात के साथ अन्य पाठ आकार उदाहरण पर चर्चा करते हैं।आप hdpi में 12px के पाठ के आकार लेने के लिए चाहते हैं, तो अन्य संकल्प में यह होगा

  1. hdpi: 12px
  2. xhdpi: 18px
  3. xxhdpi: 24px
  4. xxxhdpi: 36px

सभी संकल्पों के लिए आवश्यक टेक्स्ट आकार को लागू करने का यह एक आसान समाधान है। मैं मूल्य-mdpi संकल्प डिवाइस पर विचार नहीं कर रहा हूं। यदि कोई इस संकल्प के लिए टेक्स्ट आकार शामिल करना चाहता है तो राशन 3: 4: 6: 8: 12 जैसा है। किसी भी प्रश्न में कृपया मुझे बताएं। उम्मीद है कि यह आपको लोगों की मदद करेगा।