i want to make my application only in landscape in android

AndroidAndroid LayoutAndroid XmlScreen Orientation

Android Problem Overview


I want to make my app work only in landscape mode but can't make it work. I have given screenOrientation = "landscape" even though the first page will be in landscape mode and other activity will be in portrait.

XML FILE

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Main"
              android:label="@string/app_name"
              android:screenOrientation="landscape" android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>     
           
    </activity>
        
    <activity android:name=".IntroHome"
              android:label="@string/app_name"
              android:screenOrientation="landscape">
    </activity>
        
    <activity android:name=".ObjectivesPage"
              android:label="@string/app_name"
              android:screenOrientation="landscape" >
    </activity>
    
    <activity android:name=".MenuPage"
              android:label="@string/app_name"
              android:screenOrientation="landscape" >
    </activity>
</application>

JAVA CLASS

public class ObjectivesPage extends Activity{

    ImageButton  imgButton;
	public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.objectivespage);
	    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

		imgButton = (ImageButton)findViewById(R.id.buttonCloseNGo);
		imgButton.setOnClickListener(onClickCloseNGo);
	}

	private OnClickListener onClickCloseNGo = new OnClickListener(){

		public void onClick(View v) {
    		Intent intent = new Intent(ObjectivesPage.this,MenuPage.class);
	    	startActivity(intent);
	    }
	};
}

Android Solutions


Solution 1 - Android

Keep this part of the manifest as it already is. For example, consider the IntroHome activity.

<activity android:name=".IntroHome"
           android:label="@string/app_name"
           android:screenOrientation="landscape"  
           >
</activity>

And for the activity XML, make sure you have the IntroHome activity layout XML only in the layout-land folder. This way, the activity / activities you have will only show the the landscape version of the XML that you have defined.

Solution 2 - Android

You can also try setting the orientation from your code

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

Check this link for more info

http://www.devx.com/wireless/Article/40792/0/page/5

Solution 3 - Android

You can use following code as per requirement:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); and setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

you have to put these code before setContentView(R.layout.layout_name.xml).

Solution 4 - Android

Try adding:

android:configChanges="orientation|keyboardHidden"

Let me know if it helps!! Just a guess!!

Solution 5 - Android

This looks like an old post, but it looks to me like if you set the mode to landscape in the manifest file, and then switch the mode to landscape in the java code, you might be switching the mode twice causing the device to render in portrait mode instead. Try commenting out the code in your java file and see what happens. If it doesn't work all you have to do is change it back. Easy peasy test.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionshripalView Question on Stackoverflow
Solution 1 - AndroidSiddharth LeleView Answer on Stackoverflow
Solution 2 - AndroidDeRaganView Answer on Stackoverflow
Solution 3 - AndroidSudipta SomView Answer on Stackoverflow
Solution 4 - AndroidPrateek JainView Answer on Stackoverflow
Solution 5 - AndroidJamesView Answer on Stackoverflow