जवाबों:
आप android:screenOrientation="portrait"
अपने मेनिफ़ेस्ट.xml फ़ाइल में प्रत्येक गतिविधि के लिए निर्दिष्ट कर सकते हैं । आप इस विकल्प को application
टैग पर निर्दिष्ट नहीं कर सकते ।
अन्य विकल्प इसे प्रोग्रामेटिक रूप से करना है, उदाहरण के लिए Activity
बेस क्लास में:
@Override
public void onCreate(Bundle savedInstanceState) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
अंतिम विकल्प इसे गतिविधि जीवनचक्र श्रोताओं के साथ करना है जो केवल एंड्रॉइड 4.0 (एपीआई 14+) के बाद से उपलब्ध है। सब कुछ एक कस्टम Application
वर्ग में होता है :
@Override
public void onCreate() {
super.onCreate();
registerActivityLifecycleCallbacks(new ActivityLifecycleAdapter() {
@Override
public void onActivityCreated(Activity a, Bundle savedInstanceState) {
a.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
});
}
ActivityLifecycleAdapter
सिर्फ एक सहायक वर्ग है जिसे आपको बनाने की आवश्यकता होगी जो कि एक खाली कार्यान्वयन होगा ActivityLifecycleCallbacks
(इसलिए आपको उस इंटरफ़ेस के प्रत्येक और हर तरीके को ओवरराइड नहीं करना होगा जब आपको बस उनमें से एक की आवश्यकता होगी)।
हां आप यह प्रोग्राम प्रोग्रामिक रूप से कर सकते हैं और आपकी सभी गतिविधियों के लिए एक एब्सट्रैक्टिविटी बना सकते हैं जो आपकी सभी गतिविधियाँ बढ़ाती हैं।
public abstract class AbstractActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
}
इस अमूर्त गतिविधि का उपयोग वैश्विक मेनू के लिए भी किया जा सकता है।
ActivityInfo.SCREEN_ORIENTATION_NOSENSOR
इसका बेहतर उत्तर होना चाहिए क्योंकि यह डिवाइस को डिफ़ॉल्ट स्थिति में छोड़ने का इरादा है क्योंकि कुछ उपकरणों में पोर्ट्रेट ओरिएंटेशन नहीं है। हालांकि, 'नोसेंसर' मेरे लिए काम नहीं करता है, इसलिए @ आर्कन का जवाब मेरे लिए है।
आप अपनी सारी गतिविधियों के लिए एक सामान्य आधार वर्ग का विस्तार किए बिना अपने पूरे आवेदन के लिए ऐसा कर सकते हैं ।
चाल यह सुनिश्चित करने के लिए है कि आप Application
अपनी परियोजना में एक उपवर्ग शामिल करें। इसमें onCreate()
, जब आपका ऐप पहली बार शुरू होता है, तो आप ActivityLifecycleCallbacks
गतिविधि जीवन चक्र की घटनाओं की सूचनाएँ प्राप्त करने के लिए एक ऑब्जेक्ट (एपीआई स्तर 14+) पंजीकृत करते हैं।
यह आपको अपने कोड को निष्पादित करने का अवसर देता है जब भी आपके ऐप में कोई भी गतिविधि शुरू होती है (या बंद हो जाती है, या फिर से शुरू हो जाती है, या जो भी हो)। इस बिंदु पर आप setRequestedOrientation()
नई बनाई गई गतिविधि पर कॉल कर सकते हैं ।
class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
// register to be informed of activities starting up
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity,
Bundle savedInstanceState) {
// new activity created; force its orientation to portrait
activity.setRequestedOrientation(
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
....
});
}
}
आप इसे अपनी मैनिफ़ेस्ट फ़ाइल में सेट कर सकते हैं।
android:name=".your launching activity name"
android:screenOrientation="portrait"
और आप अपनी कक्षा की फ़ाइल में कोड लिखकर भी इसे प्राप्त कर सकते हैं जैसे:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
Android जोड़ें: ScreenOrientation = "पोर्ट्रेट" AndroidManifest.xml में गतिविधि के लिए। उदाहरण के लिए:
<activity android:name=".SomeActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
उपयोग:
android:screenOrientation="portrait"
प्रत्येक गतिविधि में अपने आवेदन की मैनिफ़ेस्ट फ़ाइल में इस लाइन को लिखें, जिसे आप केवल पोर्ट्रेट मोड में दिखाना चाहते हैं।
Android डेवलपर गाइड से:
"अभिविन्यास" स्क्रीन ओरिएंटेशन बदल गया है - उपयोगकर्ता ने डिवाइस को घुमाया है। नोट: यदि आपका एप्लिकेशन एपीआई स्तर 13 या उच्चतर (जैसा कि मिन्सडेकवर्सन और टार्गेटवेडवर्जन विशेषताओं द्वारा घोषित किया गया है) को लक्षित करता है, तो आपको "स्क्रीनसाइज़" कॉन्फ़िगरेशन भी घोषित करना चाहिए, क्योंकि यह तब भी बदलता है जब कोई उपकरण पोर्ट्रेट और लैंडस्केप ओरिएंटेशन के बीच बदल जाता है।
"screenSize" वर्तमान में उपलब्ध स्क्रीन आकार बदल गया है। यह वर्तमान पहलू अनुपात के सापेक्ष वर्तमान में उपलब्ध आकार में परिवर्तन का प्रतिनिधित्व करता है, इसलिए जब उपयोगकर्ता परिदृश्य और चित्र के बीच बदल जाएगा तो बदल जाएगा। हालाँकि, यदि आपका एप्लिकेशन API स्तर 12 या उससे कम लक्ष्य करता है, तो आपकी गतिविधि हमेशा इस कॉन्फ़िगरेशन परिवर्तन को स्वयं संभालती है (यह कॉन्फ़िगरेशन परिवर्तन आपकी गतिविधि को पुनरारंभ नहीं करता है, यहां तक कि एंड्रॉइड 3.2 या उच्चतर डिवाइस पर चलने पर भी)। एपीआई स्तर 13 में जोड़ा गया।
तो, AndroidManifest.xml फ़ाइल में, हम डाल सकते हैं:
<activity
android:name=".activities.role_activity.GeneralViewPagerActivity"
android:label="@string/title_activity_general_view_pager"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden|screenSize"
>
</activity>
जोड़ा जा रहा है <preference name="orientation" value="portrait" />
के तहत <widget>
में अपने config.xml मेरे लिए काम किया।
(अन्य समाधान या तो मेरे डिवाइस पर काम नहीं करते थे, भवन निर्माण के दौरान अधिलेखित हो गए थे या निर्माण प्रक्रिया के दौरान पदावनति त्रुटियां दी थीं।)
मैनिफ़ेस्ट फ़ाइल में जिस गतिविधि को आप "पोर्ट्रेट" में उपयोग करना चाहते हैं, आपको इन कोड को गतिविधि टैग में लिखना होगा
android:screenOrientation="portrait"
इस तरह
android:icon="@drawable/icon"
android:name="com.zemkoapps.hd.wallpaper.AndroidGridLayoutActivity"
android:screenOrientation="portrait" >
लेकिन अगर आप परिदृश्य में स्क्रीन चाहते हैं तो इस कोड का उपयोग करें
android:screenOrientation="landscape"
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//setting screen orientation locked so it will be acting as potrait
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}
अगर किसी को आश्चर्य हो रहा था, तो आप अपने पूरे आवेदन के लिए यह कैसे कर सकते हैं कि आपकी सभी गतिविधियाँ कोटलिन में एक सामान्य आधार वर्ग का विस्तार करें , नीचे दिए गए उदाहरण देखें:
class InteractiveStoryApplication: Application() {
override fun onCreate() {
super.onCreate()
registerActivityLifecycleCallbacks(object: ActivityLifecycleCallbacks {
override fun onActivityCreated(activity: Activity?, savedInstanceState: Bundle?) {
activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}
override fun onActivityPaused(activity: Activity?) {
}
override fun onActivityResumed(activity: Activity?) {
}
override fun onActivityDestroyed(activity: Activity?) {
}
override fun onActivitySaveInstanceState(activity: Activity?, outState: Bundle?) {
}
override fun onActivityStarted(activity: Activity?) {
}
override fun onActivityStopped(activity: Activity?) {
}
})
}
}
और फिर आपको AndroidManifest में अपना सामान्य आधार वर्ग जोड़ना होगा:
<application android:allowBackup="true"
android:name=".InteractiveStoryApplication"
ग्राहम बोरलैंड के जवाब के समान ... लेकिन ऐसा लगता है कि आपको आवेदन वर्ग नहीं बनाना है अगर आप नहीं चाहते हैं ... बस अपनी परियोजना में एक आधार गतिविधि बनाएं
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_base);
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
और इस श्रेणी को AppCompatActivity के स्थान पर विस्तारित करें जहां आप Potrait Mode का उपयोग करना चाहते हैं
public class your_activity extends BaseActivity {}
Xamarin उपयोगकर्ताओं के लिए:
यदि आप अपनी सभी गतिविधियों को एक BaseActivity
जस्ट ऐड में बढ़ाते हैं:
this.RequestedOrientation = ScreenOrientation.Portrait;
इससे समस्या का समाधान हो जाएगा। यदि आप चाहते हैं कि कोई विशेष गतिविधि परिदृश्य में हो तो इसमें ओवरराइड करें OnActivityCreated
। जैसा:
this.Activity.RequestedOrientation = ScreenOrientation.Landscape;
अपने मेनिफेस्ट में यह लिखें:
<activity
android:screenOrientation="portrait"
<!--- Rest of your application information ---!>
</activity>