Hey all - I have tried to only display my app in portrait view orientation to no avail.
I have the code: android:screenOrientation="portrait" in every button, ImageView, TextView, etc... in my xml files but when I tilt the phone to the side, it still goes into landscape view.
I do call the camera in my app, but I don't think that is the issue - any thoughts?
the layout is the wrong place. you have to place it in the activity like this:
<activity android:screenOrientation="portrait" ...>
Force an Android activity to always use landscape mode
is google that hard to understand? google "android force portrait" and the first four links shows the answer... (sorry.. just had to let it out :) )
You have to put the android:screenOrientation="portrait" in the AndroidManifest.xml.
In AndroidManifest.xml you have to do something like this:
<activity android:name=".Your_Activity_Name"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="portrait"/>
Related
My app stops from working for some reason when the phone is rotated to the side and so the app does too. How can I avoid this, making it so it appears only vertically? Thanks a lot
add this to your activities in android manifest :)
android:screenOrientation = "portrait">
Here is a full example:
<activity
android:name=".Activity.MainActivity"
android:label="#string/app_name"
android:screenOrientation="portrait">
</activity>
In your app's manifest file, set activity to be vertical... Its easy...
I have an application in landscape orientation. This is how the manifest looks like:
<activity
android:name="Activity"
android:theme="#android:style/Theme.NoTitleBar.Fullscreen"
android:launchMode="singleTask"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden">
</activity>
When I lock and unlock the device the orientation changes to portrait for half of second and then goes to landscape. I noticed that this is not happening on all devices. I could reproduce it on Samsung Galaxy SI.
Any ideas what can it be?
Adding "orientation|screenSize" to configChanges does not fix the issue.
EDIT:
Basically, the layout is losing its orientation when I slide the unlock screen(specially on Samsung devices) because it's taking the orientation of the slide activity which is portrait.
Changing the name of the layout folder to "layout-land" may fix this by only allowing drawing in landscape
You need to add the below properties in the activity tag of manifest you want,,,rather than adding your application tag
<activity
android:name="com.example,MainActivity"
android:configChanges="keyboardHidden|orientation"
android:screenOrientation="landscape"
android:windowSoftInputMode="adjustPan" >
</activity>
Or if this do not work,,, then add this code just below the setContentView() in your Activity
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
I have a simple app. And I would prefer the views stay the way they are when the orientation change. How can I do that?
Thanks in advance!
Add android:configChanges="keyboardHidden|orientation" to the activity in the manifest file..
<activity
android:name="..." android:configChanges="keyboardHidden|orientation">
</activity>
And read Handling Runtime Changes
In addition to #Nunu's answer you may wish to override onConfigurationChanged(...) to make any essential changes to your views.
You can also lock activities to portrait or landscape in the manifest.
EDIT
To lock in portrait declare your activity in the manifest like this:
<activity
android:name="com.yourpackage.YourActivity"
android:screenOrientation="portrait" />
you should check the sample application of "Multiresolution" in your android-sdk-windows /samples directory
My app is done in Titanium. I am struggling with a issue which is that when I= launch the App by keeping the device in landscape mode. Then while loading Splash screen it first goest in Landscape mode and when app finally launches Whole UI got distorted by that orientation change. I have added the below line of code in TiApp.xml
<application android:screenOrientation="portrait" android:configChanges="keyboardHidden"/>
even though its rotating. I want to stop the orientation change of that splash screen while launching. Any idea?
In each activity you have to write
<activity android:name=".MainActivity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="landscape" />
Hope it help!!
Try this. Add you custom androidManifest.xml For custom xml
and add this line in androidManifest.xml and run I think this is very useful for you.
<activity android:configChanges="keyboardHidden" android:name="org.appcelerator.titanium.TiActivity" android:screenOrientation="portrait"/>
<activity android:configChanges="keyboardHidden" android:name="ti.modules.titanium.ui.TiTabActivity" android:screenOrientation="portrait"/>
Cheers
How can I make it so the screen orientation is always landscape?
Do I need to add something to the manifest.xml?
Add this android:screenOrientation="landscape" to your <activity> tag in the manifest for the specific activity that you want to be in landscape.
Edit:
To toggle the orientation from the Activity code, call setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) other parameters can be found in the Android docs for ActivityInfo.
Yes, in AndroidManifest.xml, declare your Activity like so: <activity ... android:screenOrientation="landscape" .../>
Just two steps needed:
Apply setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); after setContentView().
In the AndroidMainfest.xml, put this statement <activity android:name=".YOURCLASSNAME" android:screenOrientation="landscape" />
Hope it helps and happy coding :)
One thing I've not found through the answers is that there are two possible landscape orientations, and I wanted to let both be available!
So android:screenOrientation="landscape" will lock your app only to one of the 2 possibilities, but if you want your app to be limited to both landscape orientations (for them whom is not clear, having device on portrait, one is rotating left and the other one rotating right) this is what is needed:
android:screenOrientation="sensorLandscape"
When you are in android studio 3 or above
you need to add following lines AndroidManifest.xml file
<activity
android:name=".MainActivity"
android:configChanges="orientation"
android:screenOrientation= "sensorLandscape"
tools:ignore="LockedOrientationActivity">
One thing this is sensor Landscape, means it will work on both landscape sides
But if you only want to work the regular landscape side then, replace sensorLandscape to landscape
You can try with
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);