There is a advantage in mobile device that it can change there orientation. It depends upon user wish that in which mode(Landscape or Portrait) he want to view your application. So it is become necessary for you to set GUI(graphics/layout)of your application in both mode so that user can feel the charm of both mode.
Some time It become typical/ hectically for developer to put both mode(Landscape and Portrait) design in there application. the reason is one of the following:-
1) Due Data pull/push(from local database/Server side DB)
2) Rich content of image and graphicsHardware related
3) Application(Camera, Bluetooth ,etc)
Actually when a user change his portable device screen from Landscape to Portrait or vice-versa Android activity call oncreate() method to show the content of activity every time . So In the above mention scenario it become delay to show the content of screen .Hence in this case we can use one of the following tactics to overcome this problem.
Approach No 1.
Lock Screen Orientation Using Manifest File
To block Android Activity from rotating on screen orientation change,We can add android:screenOrientation ("portrait" or "landscape") field into the <activity>element,
just like this Example
<activity android:name="com..sks.recognition.MyActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Black.NoTitleBar" />
This is the simplest way to block the screen orientation change . The main draw back of this is that it fixed the mode of Screen orientation That means User have to forcefully open your app in the given mode. So it is not dynamic. it is rigid way to solve the problem
Approach No.2.
You can check the orientation of screen during the app(activity) start and then lock it to change from other screen orientation As for Example if user open his app in Portrait mode then if he want to change in landscape mode then it not happen at that time. Same way if user open it app in landscape mode then data shown at this time in landscape mode but it not change again in Portrait mode. Use following condition
int prevOrientation = getRequestedOrientation(); if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } else if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); } else { setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); } setRequestedOrientation(prevOrientation);
This is better approach than Approach no1, because it is dynamic as compare to first approach. User can view your application in both screen mode(Landscape and Portraits ).
Approach No.3.
This is the pure dynamic approach to show the application in both screen mode(Landscape and portrait).
Coming Soon !!!1...
No comments:
Post a Comment