मैं चाहता हूं कि मेरा एंड्रॉइड एप्लिकेशन पोर्ट्रेट मोड में ही चलाया जाए? मैं यह कैसे कर सकता हूं?मैं चाहता हूं कि मेरा एंड्रॉइड एप्लिकेशन पोर्ट्रेट मोड में ही चलाया जाए?
उत्तर
प्रकट में, अपने सभी गतिविधियों के लिए इस सेट:
<activity android:name=".YourActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"/>
मुझे स्पष्ट करने दें:
android:configChanges="orientation"
के साथ आप एंड्रॉयड बताते हैं कि आप उन्मुखीकरण के परिवर्तन के जिम्मेदार होगा।android:screenOrientation="portrait"
आप डिफ़ॉल्ट अभिविन्यास मोड सेट करते हैं।
में Android मेनिफेस्ट फ़ाइल, के लिए विशेषता डाल अपने <activity>
कि android:screenOrientation="portrait"
मैं
android:screenOrientation="nosensor"
उपयोग करें यदि आप नीचे की ओर पोर्ट्रेट मोड का ही समर्थन नहीं करना चाहती यह उपयोगी है।
अगर ऐसा लगता है कि यह करता है, तो यह वास्तव में स्क्रीन को चित्रित करने के लिए मजबूर नहीं करता है, जिसे आप करना चाहते हैं। –
आप इस टिप्पणी को अभी क्यों नहीं हटाते हैं!यह समझ में नहीं आता –
दो तरीके,
- मैनिफ़ेस्ट फ़ाइल में प्रत्येक गतिविधि के लिए
android:screenOrientation="portrait"
जोड़े - प्रत्येक जावा फ़ाइल में
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
जोड़े हैं।
दूसरे विकल्प में भयानक साइड इफेक्ट है जो पोर्ट्रेट में शुरू होने पर आपकी गतिविधि को पुनरारंभ करेगा। – Joakim
पुरानी पोस्ट मुझे पता है। अभिविन्यास हो सकता है या स्वैप किया जा सकता है, भले ही आपका ऐप हमेशा पोर्ट्रेट मोड में चलाने के लिए (उदाहरण के लिए टैबलेट पर) मैंने इस फ़ंक्शन को डिज़ाइन किया है जिसका उपयोग डिवाइस को सही अभिविन्यास में सेट करने के लिए किया जाता है, बिना चित्र और परिदृश्य कैसे डिवाइस पर सुविधाओं का आयोजन किया जाता है।
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
;-)
हटाने प्रकट में, अपने सभी गतिविधियों के लिए इस सेट:
<activity android:name=".YourActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"/>
आपको यह जवाब हटा देना चाहिए क्योंकि आपने एक ही जानकारी के साथ एक और जवाब पोस्ट किया है। – Mangesh
नहीं होगा बढ़िया अगर हम आवेदन में सभी गतिविधियों के लिए "वैश्विक" अभिविन्यास सेट कर सकते हैं? ऐसा लगता है कि हमारे पास कोई विकल्प नहीं है लेकिन प्रत्येक गतिविधि पर "पोर्ट्रेट" विशेषता कॉपी/पेस्ट करें ... –
'एंड्रॉइड सेट करने के लिए पर्याप्त है: स्क्रीनऑरिएंटेशन =" पोर्ट्रेट "' – Till
@EduardoCoelho आप वास्तव में बेस क्लास 'पोर्ट्रेटएक्टिविटी' बना सकते हैं और ऑनक्रेट कॉल 'setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)' विस्तारित सभी गतिविधियां – Twinone