1

当用户顺时针/逆时针旋转他的 Android 手机时,我想将屏幕方向从纵向更改为横向,反之亦然。谁能帮助我如何实现这一目标?我不知道当用户旋转他的 Android 手机时会触发什么事件。

例如,当用户在 UI 中触摸按钮时,会触发触摸事件。那么,当用户摇晃他的安卓手机时,触发的事件是什么呢?请帮助我。

4

3 回答 3

1

海,我在Georgy Gobozov的帮助下得到了解决方案,但是该解决方案必须如下所示进行改进才能正常工作,

@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);
     }
    } 
于 2010-11-02T12:20:02.013 回答
0

只需在活动中添加到您的 AndroidManifest

android:configChanges="keyboardHidden|orientation"

然后你应该在你的活动中覆盖这个方法

@Override
public void onConfigurationChanged(Configuration newConfig) {
  super.onConfigurationChanged(newConfig);
  setContentView(R.layout.myLayout);
}

并且使用搜索,这个问题很受欢迎。

于 2010-11-01T20:45:00.757 回答
0
 public class Accelerometer extends Activity 
    implements AccelerometerListener{

    public void onShake(float force) {
         Toast.makeText(this, "Phone shaked : " + force, 1000).show();
    }
 }

您可以参考以下链接

http://blog.androgames.net/85/android-accelerometer-tutorial/

于 2010-11-02T07:40:36.503 回答