android设置竖屏仍然跟随屏幕旋转怎么办

如题所问,我最近遇到一个bug,就是设置了摇感,然后有用户反馈说设置了手机下拉的系统设置-屏幕旋转-关闭。然后屏幕还是会旋转的问题。

首先,我们先从如何设置横竖屏了解下好了

设置横屏和竖屏的方法:

方法一:在AndroidManifest.xml中配置

如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数:

"unspecified":默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.

"landscape":横屏显示(宽比高要长)

"portrait":竖屏显示(高比宽要长)

"user":用户当前首选的方向

"behind":和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)

"sensor":有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。

"nosensor":忽略物理感应器,这样就不会随着用户旋转设备而更改了("unspecified"设置除外)。

方法二:在java代码中设置

设置横屏代码:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//横屏

设置竖屏代码:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//竖屏

因为横屏有两个方向的横法,而这个设置横屏的语句,如果不是默认的横屏方向,会把已经横屏的屏幕旋转180°。

所以可以先判断是否已经为横屏了,如果不是再旋转,不会让用户觉得转的莫名其妙啦!代码如下:

复制代码
if(this.getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT){
   setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

是吧,设置的无非就这两种方法。但是搜索的方法千篇一律都是差不多的。然后我设置的是"sensor"。然后也不懂问题出在了哪里,没办法只能继续去找资料看看。或许有更多的可能性没考虑到,结果在一篇文章中找到了。

原来就是方向传感器决定的,它没办法随系统设置的旋转。优先级比较高吧。吐了呀!然后我就直接把清单文件的 android:screenOrientation 属性删了。用默认的属性或者改成 android:screenOrientation="unspecified" 。问题就解决了。

当然了还有标题出现的这个问题,就是设置竖屏仍然跟随屏幕旋转,可能需要你细心的找找你设置的方法一或者方法二哪一步设置错了。或者代码设置错了。毕竟慢工出细活,要细心才不容易出错。

嗯嗯,还有就是遇到了个问题:如何判断是否开启自动旋转。下面就来分享一下方法:系统是否允许自动旋转屏幕的方法

复制代码
    /**
     * 系统是否允许自动旋转屏幕
     */
    public static boolean isAutoRotateOn(Context context) {
        //获取系统是否允许自动旋转屏幕
        return (android.provider.Settings.System.getInt(context.getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 0) == 1);
    }

之前有查阅的如下:

Activity手动设置横竖屏展示之后继续保持横竖屏自动切换 - 简书

安卓 屏幕旋转 - 自由资讯

android设置横屏和竖屏的方法-腾讯云开发者社区-腾讯云

相关推荐
geovindu17 小时前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构
知之则吱吱19 小时前
Android 开发者验证机制迎来新变化:核心要求、实施时间与开发者应对指南
android·google
墨天梦20 小时前
D09_Retrofit接口与数据转换
android·kotlin·retrofit
电商API_1800790524721 小时前
闲鱼商品列表API接口商品详情API接口请求示例(含一份真实响应数据示例)
android·数据挖掘·网络爬虫·跨境电商·反向海淘
我命由我1234521 小时前
Android 广播 - 组件通信
android·java·开发语言·android studio·android jetpack·android-studio·android runtime
阿俊-全栈开发21 小时前
LikeShop 单商户标准版商品管理二开:分类、SKU 规格与库存联动实现
android·likeshop·likeshop开源商城
用户2181697049301 天前
Kotlin 语法二
android
妖星1 天前
android 源码分析surfaceFinger是如何通过设置属性启动bootanim
android
JoyMonitor1 天前
APK mmap 内存增长定位:pagemap 与 DEX 结构联合定位方法
android