2010-09-16 8 views

उत्तर

585

प्रकट में, अपने सभी गतिविधियों के लिए इस सेट:

<activity android:name=".YourActivity" 
    android:configChanges="orientation" 
    android:screenOrientation="portrait"/> 

मुझे स्पष्ट करने दें:

  • android:configChanges="orientation" के साथ आप एंड्रॉयड बताते हैं कि आप उन्मुखीकरण के परिवर्तन के जिम्मेदार होगा।
  • android:screenOrientation="portrait" आप डिफ़ॉल्ट अभिविन्यास मोड सेट करते हैं।
+37

नहीं होगा बढ़िया अगर हम आवेदन में सभी गतिविधियों के लिए "वैश्विक" अभिविन्यास सेट कर सकते हैं? ऐसा लगता है कि हमारे पास कोई विकल्प नहीं है लेकिन प्रत्येक गतिविधि पर "पोर्ट्रेट" विशेषता कॉपी/पेस्ट करें ... –

+41

'एंड्रॉइड सेट करने के लिए पर्याप्त है: स्क्रीनऑरिएंटेशन =" पोर्ट्रेट "' – Till

+7

@EduardoCoelho आप वास्तव में बेस क्लास 'पोर्ट्रेटएक्टिविटी' बना सकते हैं और ऑनक्रेट कॉल 'setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)' विस्तारित सभी गतिविधियां – Twinone

39

में Android मेनिफेस्ट फ़ाइल, के लिए विशेषता डाल अपने <activity> कि android:screenOrientation="portrait"

-4

मैं

android:screenOrientation="nosensor" 

उपयोग करें यदि आप नीचे की ओर पोर्ट्रेट मोड का ही समर्थन नहीं करना चाहती यह उपयोगी है।

+0

अगर ऐसा लगता है कि यह करता है, तो यह वास्तव में स्क्रीन को चित्रित करने के लिए मजबूर नहीं करता है, जिसे आप करना चाहते हैं। –

+0

आप इस टिप्पणी को अभी क्यों नहीं हटाते हैं!यह समझ में नहीं आता –

20

दो तरीके,

  1. मैनिफ़ेस्ट फ़ाइल में प्रत्येक गतिविधि के लिए android:screenOrientation="portrait" जोड़े
  2. प्रत्येक जावा फ़ाइल में this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); जोड़े हैं।
+9

दूसरे विकल्प में भयानक साइड इफेक्ट है जो पोर्ट्रेट में शुरू होने पर आपकी गतिविधि को पुनरारंभ करेगा। – Joakim

3

पुरानी पोस्ट मुझे पता है। अभिविन्यास हो सकता है या स्वैप किया जा सकता है, भले ही आपका ऐप हमेशा पोर्ट्रेट मोड में चलाने के लिए (उदाहरण के लिए टैबलेट पर) मैंने इस फ़ंक्शन को डिज़ाइन किया है जिसका उपयोग डिवाइस को सही अभिविन्यास में सेट करने के लिए किया जाता है, बिना चित्र और परिदृश्य कैसे डिवाइस पर सुविधाओं का आयोजन किया जाता है।

private void initActivityScreenOrientPortrait() 
    { 
     // Avoid screen rotations (use the manifests android:screenOrientation setting) 
     // Set this to nosensor or potrait 

     // Set window fullscreen 
     this.activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     DisplayMetrics metrics = new DisplayMetrics(); 
     this.activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); 

     // Test if it is VISUAL in portrait mode by simply checking it's size 
     boolean bIsVisualPortrait = (metrics.heightPixels >= metrics.widthPixels); 

     if(!bIsVisualPortrait) 
     { 
      // Swap the orientation to match the VISUAL portrait mode 
      if(this.activity.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) 
      { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } 
      else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } 
     } 
     else { this.activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); } 

    } 

एक आकर्षण की तरह काम करता है!

नोटिस: अपनी गतिविधि से बदलें this.activity या मुख्य गतिविधि में जोड़कर this.activity ;-)

-6

हटाने प्रकट में, अपने सभी गतिविधियों के लिए इस सेट:

<activity android:name=".YourActivity" 
    android:configChanges="orientation" 
    android:screenOrientation="portrait"/> 
+11

आपको यह जवाब हटा देना चाहिए क्योंकि आपने एक ही जानकारी के साथ एक और जवाब पोस्ट किया है। – Mangesh

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