문제

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/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top