जवाबों:
हाँ, यह लागू है!
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
ActivityInfo
http://developer.android.com/reference/android/content/pm/ActivityInfo.html
लिंक देखें:
Button buttonSetPortrait = (Button)findViewById(R.id.setPortrait);
Button buttonSetLandscape = (Button)findViewById(R.id.setLandscape);
buttonSetPortrait.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
});
buttonSetLandscape.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
});
http://android-er.blogspot.in/2011/08/set-screen-orientation-programmatically.html
हां, आप किसी भी समय आप जो भी उपयोग करना चाहते हैं, उसे प्रोग्राम ओरिएंटेशन सेट कर सकते हैं:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
परिदृश्य और चित्र मोड के लिए क्रमशः। SetRequestedOrientation () विधि गतिविधि वर्ग के लिए उपलब्ध है , इसलिए इसका उपयोग आपकी गतिविधि के अंदर किया जा सकता है।
और यह आप वर्तमान स्क्रीन अभिविन्यास प्राप्त कर सकते हैं और इसकी वर्तमान स्थिति के आधार पर इसे पर्याप्त रूप से सेट कर सकते हैं :
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
final int orientation = display.getOrientation();
// OR: orientation = getRequestedOrientation(); // inside an Activity
// set the screen orientation on button click
Button btn = (Button) findViewById(R.id.yourbutton);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
switch(orientation) {
case Configuration.ORIENTATION_PORTRAIT:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
case Configuration.ORIENTATION_LANDSCAPE:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
break;
}
}
});
यहाँ से लिया गया: http://techblogon.com/android-screen-orientation-change-rotation-example/
संपादित करें
इसके अलावा, आप स्क्रीन ओरिएंटेशन प्राप्त कर सकते हैं Configuration
:
Activity.getResources().getConfiguration().orientation
getRequestedOrientation()
वर्तमान स्क्रीन अभिविन्यास प्राप्त करने के लिए उपयोग करने का सुझाव देता हूं : stackoverflow.com/a/21909327/1037294
getRequestedOrientation()
UNSPECIFIED
जब आप ऐप शुरू करते हैं तो आपको देता है । तो ऊपर श्रोता के साथ स्क्रीन परिवर्तन नहीं होगा और यदि आप जोड़ने UNSPECIFIED
के लिए switch
यह में से एक में स्क्रीन रखना चाहिए पोर्ट्रेट / लैंडस्केप पहले की स्थिति।
जहाँ भी संभव हो, कृपया SCREEN_ORIENTATION_LANDSCAPE या SCREEN_ORIENTATION_PORTITIT का उपयोग न करें। इसके बजाय उपयोग करें:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
ये उपयोगकर्ता को डिवाइस को या तो लैंडस्केप ओरिएंटेशन या फिर पोर्ट्रेट ओरिएंटेशन के लिए क्रमशः ओरिएंट करने की अनुमति देते हैं। यदि आपको कभी भी चार्जिंग केबल के साथ एक गेम खेलना पड़ता है जो आपके पेट में चला जाता है, तो आप वास्तव में जानते हैं कि उपलब्ध दोनों झुकाव उपयोगकर्ता के लिए महत्वपूर्ण हैं।
नोट: फोन के लिए, कम से कम कई जो मैंने चेक किए हैं, यह केवल "राइट साइड अप" पोर्ट्रेट मोड की अनुमति देता है, हालांकि, SENSOR_PORTRAIT टेबलेट पर ठीक से काम करता है।
नोट: इस सुविधा को एपीआई स्तर 9 में पेश किया गया था, इसलिए यदि आपको 8 या उससे कम (इस बिंदु पर संभावना नहीं) का समर्थन करना चाहिए, तो इसके बजाय इसका उपयोग करें:
setRequestedOrientation(Build.VERSION.SDK_INT < 9 ?
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE :
ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
setRequestedOrientation(Build.VERSION.SDK_INT < 9 ?
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT :
ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
स्क्रीन का ओरिएंटेशन सेट करने के लिए इसका उपयोग करें:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
या
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
और इसे अपने प्रकटन में जोड़ना न भूलें:
android:configChanges = "orientation"
"orientation|screenSize"
, यहां देखें: developer.android.com/guide/topics/resources/…
एक काम कोड:
private void changeScreenOrientation() {
int orientation = yourActivityName.this.getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
showMediaDescription();
} else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
hideMediaDescription();
}
if (Settings.System.getInt(getContentResolver(),
Settings.System.ACCELEROMETER_ROTATION, 0) == 1) {
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
}
}, 4000);
}
}
इस विधि को अपने बटन पर क्लिक करें