如何锁定android屏幕方向
我正在制作一个Android视频播放器。它的功能类似于用户可以在任何方向观看视频。我只使用以下代码:如何锁定android屏幕方向,android,Android,我正在制作一个Android视频播放器。它的功能类似于用户可以在任何方向观看视频。我只使用以下代码: Settings.System.putInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 1); 它可以工作,但当我添加一个用户可以锁定方向的函数时,我只是这样做了: Settings.System.putInt(getContentResolver(), Settings.System.ACCELEROMETER
Settings.System.putInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 1);
它可以工作,但当我添加一个用户可以锁定方向的函数时,我只是这样做了:
Settings.System.putInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0);
所以我遇到了一些麻烦。当我处于横向方向并尝试锁定方向时,屏幕只会变成纵向。
有人能解决它吗?或者告诉我另一种处理方法
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
或
此处的更多信息:根据您的条件更改if else语句使用以下代码
int currentOrientation = getResources().getConfiguration().orientation;
if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE)
{
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
}
else {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
}
或
您可以在活动中设置任何人的横向或纵向。在屏幕旋转过程中,横向或纵向不会改变
<activity android:name="MyActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation|screenSize">
...
</activity>
...
在您的AndroidManifest.xml中,为每个活动放置
android:screenOrientation="landscape"
它强制活动横向展开。只需在manifest.xml文件中添加以下属性即可
android:screenOrientation="portrait"
这样,
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait" >
</activity>
你可以请求屏幕定位。你可以这样使用它
// For landscape
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//OR for portrait
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//OR reverse landscape
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
//OR for reverse portrait
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);
在ActivityInfo.screenOrientation中使用的方向常量
在API级别1中添加
此活动希望运行的首选屏幕方向。从screenOrientation属性中,屏幕方向未指定、屏幕方向横向、屏幕方向纵向、屏幕方向用户、屏幕方向后方、屏幕方向传感器、屏幕方向传感器、屏幕方向传感器横向、屏幕方向传感器纵向、,屏幕方向\u反转\u横向、屏幕方向\u反转\u纵向、屏幕方向\u全方位传感器、屏幕方向\u用户\u横向、屏幕方向\u用户\u纵向、屏幕方向\u全方位用户、屏幕方向\u锁定、
但横向不是唯一的,它有一个相反的方向。我说得对吗?是的,因为纵向将是
ActivityInfo。屏幕\u方向\u传感器\u纵向
,但它仍然可以通过旋转180°来改变窗口方向。当我在横向时,你的代码可以工作,但不能完全工作。有了你的代码,它保持横向方向。但当我把手机反转时,方向也会反转,但不会锁定。也许你不明白我的意思。我应该提供一个按钮给用户,他们可以打开旋转功能或不。所以更新答案也没用。我确实做了,它作为我的第一条评论。这是保持方向的一种方式。但我不能这样做。你可以从这里学习@dieyidezui@RahmatAryanto这不是他想要的。他需要应用程序保持在横向,即使方向被锁定@我知道,我会编辑它,但我会给他帮助。对不起,我不想一直锁定方向。我可以打开旋转功能,也可以不打开。当他们关闭旋转时,屏幕方向不会改变。这不是他想要的。他需要应用程序保持在横向,即使方向被锁定!
// For landscape
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//OR for portrait
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//OR reverse landscape
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);
//OR for reverse portrait
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);