मेरे पास परिदृश्य के लिए एक लेआउट और पोर्ट्रेट के लिए एक कैसे हो सकता है? जब उपयोगकर्ता बग़ल में फोन घुमाता है तो मैं अतिरिक्त चौड़ाई लेना चाहता हूं और ऊर्ध्वाधर स्थान का संरक्षण करना चाहता हूं।
मेरे पास परिदृश्य के लिए एक लेआउट और पोर्ट्रेट के लिए एक कैसे हो सकता है? जब उपयोगकर्ता बग़ल में फोन घुमाता है तो मैं अतिरिक्त चौड़ाई लेना चाहता हूं और ऊर्ध्वाधर स्थान का संरक्षण करना चाहता हूं।
जवाबों:
डिफ़ॉल्ट रूप से, लेआउट में /res/layout
पोर्ट्रेट और लैंडस्केप दोनों को लागू किया जाता है।
यदि आपके पास उदाहरण के लिए है
/res/layout/main.xml
आप एक नया फ़ोल्डर जोड़ सकते हैं /res/layout-land
, main.xml
उसमें कॉपी कर सकते हैं और आवश्यक समायोजन कर सकते हैं।
कुछ और विकल्पों के लिए http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layouts और http://www.devx.com/wireless/Article/40792/1954 भी देखें ।
portrait
एंड्रॉइड स्टूडियो के मौजूदा संस्करण (v1.0.2) में आप नीचे दिए गए स्क्रीनशॉट में दिखाए गए दृश्य संपादक में बटन पर क्लिक करके बस एक लैंडस्केप लेआउट जोड़ सकते हैं। "लैंडस्केप विविधता बनाएँ" चुनें
layout-land
फ़ोल्डर में एक नई प्रति डालता है । किसी भी विचार कैसे वहाँ से एक लेआउट कॉल करने के लिए? उपयोग नहीं कर सकते R.layout.layout_name
। मैं अपने स्वयं के लेआउट को मैन्युअल रूप से कॉन्फ़िगरेशन परिवर्तन पर कॉन्फ़िगर करने का प्रयास कर रहा हूं, धन्यवाद।
जब तक आप अन्यथा निर्दिष्ट नहीं करते, लेआउट / रेस / लेआउट चित्र और परिदृश्य दोनों पर लागू होते हैं। मान लें कि हमारे पास हमारे होमपेज के लिए /res/layout/home.xml है और हम चाहते हैं कि यह 2 लेआउट प्रकारों में अलग तरह से दिखे।
Android Studio 3.xx और Android Studio 4.xx के लिए सबसे तेज़ तरीका
1. गतिविधि लेआउट के डिज़ाइन टैब पर जाएं
2. पूर्वावलोकन बटन के लिए ओरिएंटेशन पर आपको जो शीर्ष दबाया जाना चाहिए , उसके लिए एक लैंडस्केप लेआउट (चेक इमेज) बनाने का विकल्प है, उस विशेष अभिविन्यास के लिए एक नया फ़ोल्डर आपके xml लेआउट फ़ाइल के रूप में बनाया जाएगा।
आप निम्न फ़ोल्डर संरचना के तहत अपने विशिष्ट लेआउट को निम्नानुसार समूहित कर सकते हैं।
लेआउट-भूमि target_version
अर्थात
लेआउट-लैंड -19 // लक्ष्य किटकैट
इसी तरह आप अपने लेआउट बना सकते हैं।
आशा है कि यह आपकी मदद करेगा
-19
प्रत्यय के लाभ की व्याख्या कर सकते हैं ? क्या यह किसी भी तरह से मददगार है?
मैं शीघ्र ही इसे समझाने का प्रयास करूंगा।
सबसे पहले, आप देख सकते हैं कि अब आप का उपयोग करना चाहिए ConstraintLayout Google द्वारा अनुरोध (androix पुस्तकालय देखें)।
अपने एंड्रॉइड स्टूडियो प्रोजेट में, आप अतिरिक्त रेस / लेआउट / निर्देशिका बनाकर स्क्रीन-विशिष्ट लेआउट प्रदान कर सकते हैं। प्रत्येक स्क्रीन कॉन्फ़िगरेशन के लिए एक जिसे अलग लेआउट की आवश्यकता होती है।
इसका मतलब है कि आपको निर्देशिका क्वालीफायर का उपयोग दोनों मामलों में करना होगा:
परिणामस्वरूप, यहाँ एक छूट है:
res/layout/main_activity.xml # For handsets
res/layout-land/main_activity.xml # For handsets in landscape
res/layout-sw600dp/main_activity.xml # For 7” tablets
res/layout-sw600dp-land/main_activity.xml # For 7” tablets in landscape
तुम भी resens स्रोतों के साथ क्वालिफायर का उपयोग कर सकते हैं dimens.xml का उपयोग कर फ़ाइलें।
res/values/dimens.xml # For handsets
res/values-land/dimens.xml # For handsets in landscape
res/values-sw600dp/dimens.xml # For 7” tablets
res / values / dimens.xml
<resources>
<dimen name="grid_view_item_height">70dp</dimen>
</resources>
res / values-भूमि / dimens.xml
<resources>
<dimen name="grid_view_item_height">150dp</dimen>
</resources>
your_item_grid_or_list_layout.xml
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content
<ImageView
android:id="@+id/image"
android:layout_width="0dp"
android:layout_height="@dimen/grid_view_item_height"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:background="@drawable/border"
android:src="@drawable/ic_menu_slideshow">
</androidx.constraintlayout.widget.ConstraintLayout>
स्रोत: https://developer.android.com/training/multiscreen/screensizes