![](/img/trans.png)
[英]Android: Unable to achieve screen orientation, app closes on device rotation
[英]Android Device Orientation with Screen Rotation Off
是的,您可以随时通过以下方式以编程方式设置屏幕方向:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
分别用于横向和纵向模式。 setRequestedOrientation()方法可用于Activity类,因此可以在Activity中使用。
这是获取当前屏幕方向并根据其当前状态进行适当设置的方法:
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
final int orientation = display.getOrientation();
// OR: orientation = getRequestedOrientation(); // inside an Activity
// set the screen orientation on button click
Button btn = (Button) findViewById(R.id.yourbutton);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
switch(orientation) {
case Configuration.ORIENTATION_PORTRAIT:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
case Configuration.ORIENTATION_LANDSCAPE:
setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
break;
}
}
});
另外,您可以使用“配置”来获得屏幕方向:
Activity.getResources().getConfiguration().orientation
如果您使用Camera API,则需要使用相机参数更改旋转角度
Camera.Parameters param = mCamera.getParameters();
param.setRotation(90);
return param;
您可以尝试不同的旋转度,以完全满足您的需求。 尝试90,180,270。 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.