Reputation: 1222
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);
}
};
}
Upvotes: 53
Views: 86133
Reputation: 6567
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)
.
Upvotes: 3
Reputation: 7
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.
Upvotes: -2
Reputation: 1234
Try adding:
android:configChanges="orientation|keyboardHidden"
Let me know if it helps!! Just a guess!!
Upvotes: 1
Reputation: 27748
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.
Upvotes: 90
Reputation: 22920
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
Upvotes: 3