如题,Android在手动设置屏幕方向后不能使用自动转屏了,这是因为手动设置屏幕方向

如:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

相当于在Manifest文件中Activity节点下配置了:

android:screenOrientation="landscape"

这会导致该Activity方向锁定,不能自动转屏。But,手动转屏是可以的,所以我们只需要加上方向改变监听,然后手动转屏,也就达到了自动转屏的目的:

class OrientationEventListenerImpl extends OrientationEventListener {

public OrientationEventListenerImpl(Context context) {

super(context);

}

@Override

public void onOrientationChanged(int rotation) {

Log.i("旋转角度:","rotation = "+rotation);

//以下代码可以根据具体需求去配置

// 设置为竖屏

if (((rotation >= 0) && (rotation <= 45)) || (rotation >= 315)) {

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}

// 设置为横屏

if(((rotation >= 225) && (rotation <= 315))) {

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}

//设置为横屏(逆向)

if(((rotation >= 45) && (rotation <= 135))) {

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);

}

}

}

然后再注册该监听器,比如在Activity的onCreate()方法中注册:

OrientationEventListenerImpl orientationEventListenerImpl = new OrientationEventListenerImpl(this);

orientationEventListenerImpl.enable();

这样就可以实现自动转屏了。上面代码只实现了在3个方向上转屏,没有写逆向的竖直方向(一般都不会用到这个方向吧),如有需要可以自己加上,角度请自己计算,其方向常量为:

ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT

通过以上的代码,还可以再配合

@Override

public void onConfigurationChanged(Configuration newConfig) {

super.onConfigurationChanged(newConfig);

}

就可达到自由控制屏幕显示方向的目的。

android无法自动旋屏,Android 手动设置屏幕方向后不能自动转屏问题相关推荐

  1. android竖屏固定,ANDROID强制锁定竖屏_APP固定设置竖屏或横屏

    1.XML锁定横屏或竖屏 在没有设置屏幕方向的情况下会默认设置为:android:screenOrientation="unspecified".即未指明屏幕方向.属性取值land ...

  2. (转)ANDROID强制锁定竖屏_APP固定设置竖屏或横屏

    1.XML锁定横屏或竖屏 在没有设置屏幕方向的情况下会默认设置为:android:screenOrientation="unspecified".即未指明屏幕方向.属性取值land ...

  3. android 开机动画竖屏,Android 5.0 开机横屏修改方法

    如果理解了Android的设计的原理, 其实这个修改原理十分简单, 比一些网上流出来的粗暴的修改方式既美观又实用. 修改分为三部分: 1: 上层(Java)修改 既然设计到屏幕的修改, 肯定想到了直接 ...

  4. android 悬浮窗口禁止横屏显示,悬浮窗强制设置屏幕方向|App开发交流区|研发交流|雨滴科技技术论坛 - Powered by Discuz!...

    最近在做平板上的一个程序,需要配合中通的app来控制扫描与分拣机的转动.然后中通的程序在平板上运行有一个问题, 就是app里设置了强制竖屏,不能跟随系统旋转应用屏幕方向,然后把系统里的屏幕方向写死,虽 ...

  5. 【Win10】系统,手动设置静态IP后出现两个IPv4地址解决方法

    @[TOC][Win10]系统,手动设置静态IP后出现两个IPv4地址解决方法 [Win10]系统,手动设置静态IP后出现两个IPv4地址解决方法 你好! 这是你第一次使用 Markdown编辑器 所 ...

  6. 如何设置计算机断电自启动,如何设置电脑断电后来电自动开机?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 如何设置电脑断电后来电自动开机? 经常断电,可以花钱买续航能力长的UPS.服务器一旦主供断电,可以维持,但费用很 大. 设置来电自动吧: 一.1.首先进入 ...

  7. 51.计算机通电后自动开机,Win10专业版怎么解决电脑关机后又自动开机的问题?

    大家碰到过电脑自动关机的,但是又没有碰到过电脑自动开机的呢?本机安装的是Windows10-10240的专业版系统,昨天出现了一个这样的情况,即把电脑关机以后,又自动开机了,如何才能解决电脑关机后又自 ...

  8. KYLIN设置屏幕缩放后的配置文件研究

    研究办法 UOS设置屏幕缩放后的配置文件研究_柳鲲鹏-CSDN博客 修改设置后的变化 -rw-rw-r-- 1 wuxi wuxi 22 1月 24 13:18 ./home/wuxi/.config ...

  9. android app自动锁屏,Android开机自动启动app 不锁屏

    Android开机自动启动app 不锁屏 发布时间:2020-07-17 03:22:20 来源:51CTO 阅读:2086 作者:清水禅石 主要参考:http://life173.blog.51ct ...

最新文章

  1. linux线程有什么用,在linux下查看一个进程它有多少个线程是用什么命令?
  2. mac os 10.14.5 update failure
  3. datetime数据类型_系统数据类型
  4. python代码案例详解-Python综合应用名片管理系统案例详解
  5. 二本毕业,努力 5 年,月入 5w 的程序员和他们的公众号
  6. java 嵌套类 作用_java 嵌套类的分类、为什么使用嵌套类?
  7. java xml dom getelementbyid,DOM中常见的元素获取方式
  8. ios 10.3 汉字的中划线
  9. Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
  10. 树算法系列之一:CART回归树
  11. 济南铃木UU125无破线改装仪表盘详解
  12. 编程灵异事件簿(一)
  13. 【白话科普】从“熊猫烧香”聊聊计算机病毒
  14. 原腾讯QQ空间负责人,T13专家,黄希彤被爆近期被裁员,裁员原因令人唏嘘。。...
  15. python变量、类型及转换
  16. java公社博客_Java
  17. C/S软件架构设计模式
  18. 【JZOJ3054】祖孙询问【LCA】
  19. 【Matlab】开发环境介绍及学习方法
  20. 泛微OA系统多版本存在命令执行漏洞

热门文章

  1. 为什么python提示没有clock_python – 为什么time.clock比time.time给出更长的时间?
  2. uboot下nand flash读写方法_鸿蒙HarmonyOS烧录方法总结
  3. 个性签名设计软件_佩服!我用Python设计了一个签名软件
  4. php 开发一个聊天系统,ajax+php 实现一个简单的在线聊天室功能(附带源码)
  5. SpringBoot使用Websocket
  6. dataframe记录数_大数据系列之Spark SQL、DataFrame和RDD数据统计与可视化
  7. flask mysql 1366_2017-11-17 Python Flask Script+mysql环境设置
  8. source code怎么用_code-builder代码生成器
  9. 11 - java构造方法
  10. Java 线程状态流转