Need Help in Changing Screen Orientation in Android
-
28-09-2019 - |
문제
I want to change the screen orientation from portrait to landscape and vice versa when the user rotates his Android mobile phone clockwise/anticlockwise. Can anyone help me how to achieve this? I do not know what event is fired when the user rotates his Android mobile phone.
For instance, when the user touches the button in UI, touch event is fired. So, when the user shakes his Android mobile phone, what is the event that is fired? Please help me on this.
해결책
Hai, I got Solution with the help of Georgy Gobozov, But that solution has to be refined as shown below to work it properly,
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if(newConfig.equals(Configuration.ORIENTATION_LANDSCAPE))
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
else if(newConfig.equals(Configuration.ORIENTATION_PORTRAIT))
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
}
다른 팁
Just add to your AndroidManifest in activity
android:configChanges="keyboardHidden|orientation"
Then you should override this method in your activity
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.myLayout);
}
And use search, this question is very popular.
public class Accelerometer extends Activity
implements AccelerometerListener{
public void onShake(float force) {
Toast.makeText(this, "Phone shaked : " + force, 1000).show();
}
}
You can refer to below link
http://blog.androgames.net/85/android-accelerometer-tutorial/