2012-03-09 21 views
6

मेरे पास दो गतिविधियां हैं जो SD कार्ड उपस्थिति के आधार पर खुलती हैं। एक गतिविधि में तीन Buttons और TextView और दूसरा ImageView, एक बटन और ज़ूम नियंत्रण है। जब मैं अभिविन्यास बदलता हूं, तो क्षैतिज दिशा में बटन चारों ओर घूमते हैं। इस के आसपास कैसे जाना है?अभिविन्यास बदलते समय एक्सएमएल लेआउट परिवर्तन

मेरे 'एसडी' कार्ड लेआउट

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#1E1E1E" 
    android:orientation="vertical" > 

    <Button 
     android:id="@+id/button_print" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="44dp" 
     android:background="@drawable/my_button" 
     android:text="@string/print" /> 

    <TextView 
     android:id="@+id/text_SDmissing" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="80dp" 
     android:text="@string/SDmissing" 
     android:textSize="20dp" /> 

    <Button 
     android:id="@+id/button_camera" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/button_print" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="58dp" 
     android:background="@drawable/my_button" 
     android:text="@string/camera" /> 

    <Button 
     android:id="@+id/button_insert" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/text_SDmissing" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="40dp" 
     android:background="@drawable/my_button" 
     android:text="@string/insert" /> 

</RelativeLayout> 
+0

कृपया हमें अपने लेआउट xml फ़ाइल (रों) दिखा। –

+1

कृपया अपनी एक्सएमएल फाइल पोस्ट करें। यदि आपको अभिविन्यास के आधार पर लेआउट बदलने की आवश्यकता है तो आपको लेआउट-पोर्ट और लेआउट-भूमि के लिए दो लेआउट सेट करना होगा। – deepa

+1

क्या आपने पोर्ट्रेट/लैंडस्केप के लिए अलग-अलग लेआउट उपलब्ध कराने की कोशिश की है? – Luksprog

उत्तर

8

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

आपका परियोजना इस प्रकार दिखाई देगा:

enter image description here

13

आप पोर्ट्रेट और लैंडस्केप मोड के लिए अलग एक्सएमएल फाइल बना सकते हैं और अलग निर्देशिका में यह जगह करने के लिए है। डिवाइस स्वचालित रूप से सही का चयन करेगा। आप जाँच कर सकते हैं निम्नलिखित निर्देशिका संरचना

res/layout/my_layout.xml 
res/layout-land/layout.xml 

आगे के संदर्भ के लिए उपयोग कर सकते हैं: http://developer.android.com/guide/practices/screens_support.html

+0

ठीक :) मेरा एक और सवाल यह है कि विभिन्न स्क्रीन आकारों का समर्थन करने के लिए एक लेआउट का उपयोग कैसे करें ..... मैं जो कर रहा हूं वह यह है कि हर बार जब मैं ऐप को पुनर्व्यवस्थित करता हूं और चलाता हूं और अपने डिवाइस में चेक करता हूं लेकिन यह वही नहीं है यदि मैं अलग-अलग ऐप में इसे चलाएं ..... – jxgn

+0

दोनों फ़ाइल नाम समान होना चाहिए। –

संबंधित मुद्दे