जवाबों:
प्रकट में, इसे अपनी सभी गतिविधियों के लिए निर्धारित करें:
<activity android:name=".YourActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"/>
मुझे समझाने दो:
android:configChanges="orientation"
Android को बताता है कि आप अभिविन्यास के परिवर्तनों के लिए जिम्मेदार होंगे।android:screenOrientation="portrait"
आप डिफ़ॉल्ट अभिविन्यास मोड सेट करें।android:screenOrientation="portrait"
PortraitActivity
और setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
Activity
, जैसे कि एक गतिविधि का विस्तार होता है ListActivity
जबकि दूसरे से बस Activity
?
में Android मेनिफेस्ट फ़ाइल, आपके लिए विशेषता डाल <activity>
किandroid:screenOrientation="portrait"
दो तरीके हैं,
android:screenOrientation="portrait"
मैनिफ़ेस्ट फ़ाइल में प्रत्येक गतिविधि के लिए जोड़ेंthis.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
प्रत्येक जावा फ़ाइल में जोड़ें ।मेनिफेस्ट में:
<activity android:name=".activity.MainActivity"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
या: मेनऐक्टिविटी में
@SuppressLint("SourceLockedOrientationActivity")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
app/src/main/AndroidManifest.xml; lineNumber: 20; columnNumber: 50; The prefix "tools" for attribute "tools:ignore" associated with an element type "activity" is not bound.
। xmlns:tools="http://schemas.android.com/tools"
मूल तत्व में जोड़ने से समस्या हल होती है
पुरानी पोस्ट जो मुझे पता है। अपने एप्लिकेशन को हमेशा पोर्ट्रेट मोड में चलाने के लिए, यहां तक कि जब अभिविन्यास हो सकता है या स्वैप किया जा सकता है आदि (उदाहरण के लिए टैबलेट पर) मैंने इस फ़ंक्शन को डिज़ाइन किया है जो कि पोर्ट्रेट और परिदृश्य को जानने की आवश्यकता के बिना डिवाइस को सही अभिविन्यास में सेट करने के लिए उपयोग किया जाता है। डिवाइस पर सुविधाओं का आयोजन किया जाता है।
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
;-)
मैं उपयोग करता हूं
android:screenOrientation="nosensor"
यदि आप पोर्ट डाउन पोर्ट्रेट मोड का समर्थन नहीं करना चाहते हैं तो यह सहायक है।