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);
}
};
}
Add this android:screenOrientation="landscape" to your <activity> tag in the manifest for the specific activity that you want to be in landscape.
To create the landscape mode right click on the res folder -> New -> Android Resource Directory. Now one pop up will be prompted. Select Orientation Available Qualifiers and then “>>” icon at right side, then select Landscape under Screen Orientation.
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.
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
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)
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With