我有一个活动,上面有一个按钮,我想在每次用户单击按钮后顺时针旋转90度,我编写了一些代码并在模拟器上工作,但是当我在真实设备上对其进行测试时,它没有工作完美 当我的代码进入情况1时,它返回到PORTRAIT模式,而不是将旋转更改为REVERSE_PORTRAIT
这是MyCode:
btnchangeRotation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int rotation = getWindowManager().getDefaultDisplay().getRotation();
Log.v("rotation--", ""+rotation);
switch (rotation) {
case 0:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
case 1:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
break;
case 2:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
break;
case 3:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
break;
}
}
});
我还像这样向清单中添加了渗透:
<uses-permission
android:name="android.permission.WRITE_SETTINGS"
tools:ignore="ProtectedPermissions" />
请注意,它完全可以在模拟器上正常工作。 任何建议都会有所帮助。 感谢任何建议。
注意: 当我在真实设备上打开屏幕旋转功能时,效果很好, 但是当我关闭它时,它只是设置为“纵向和横向”, 我想用没有陀螺仪传感器的设备来做。
答案 0 :(得分:0)
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
也许你是说:
MyActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
您拥有的版本只是调用一个方法,而对Activity本身没有任何处理。