android无法自动旋屏,Android 手动设置屏幕方向后不能自动转屏问题
如题,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 手动设置屏幕方向后不能自动转屏问题相关推荐
- android竖屏固定,ANDROID强制锁定竖屏_APP固定设置竖屏或横屏
1.XML锁定横屏或竖屏 在没有设置屏幕方向的情况下会默认设置为:android:screenOrientation="unspecified".即未指明屏幕方向.属性取值land ...
- (转)ANDROID强制锁定竖屏_APP固定设置竖屏或横屏
1.XML锁定横屏或竖屏 在没有设置屏幕方向的情况下会默认设置为:android:screenOrientation="unspecified".即未指明屏幕方向.属性取值land ...
- android 开机动画竖屏,Android 5.0 开机横屏修改方法
如果理解了Android的设计的原理, 其实这个修改原理十分简单, 比一些网上流出来的粗暴的修改方式既美观又实用. 修改分为三部分: 1: 上层(Java)修改 既然设计到屏幕的修改, 肯定想到了直接 ...
- android 悬浮窗口禁止横屏显示,悬浮窗强制设置屏幕方向|App开发交流区|研发交流|雨滴科技技术论坛 - Powered by Discuz!...
最近在做平板上的一个程序,需要配合中通的app来控制扫描与分拣机的转动.然后中通的程序在平板上运行有一个问题, 就是app里设置了强制竖屏,不能跟随系统旋转应用屏幕方向,然后把系统里的屏幕方向写死,虽 ...
- 【Win10】系统,手动设置静态IP后出现两个IPv4地址解决方法
@[TOC][Win10]系统,手动设置静态IP后出现两个IPv4地址解决方法 [Win10]系统,手动设置静态IP后出现两个IPv4地址解决方法 你好! 这是你第一次使用 Markdown编辑器 所 ...
- 如何设置计算机断电自启动,如何设置电脑断电后来电自动开机?
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 如何设置电脑断电后来电自动开机? 经常断电,可以花钱买续航能力长的UPS.服务器一旦主供断电,可以维持,但费用很 大. 设置来电自动吧: 一.1.首先进入 ...
- 51.计算机通电后自动开机,Win10专业版怎么解决电脑关机后又自动开机的问题?
大家碰到过电脑自动关机的,但是又没有碰到过电脑自动开机的呢?本机安装的是Windows10-10240的专业版系统,昨天出现了一个这样的情况,即把电脑关机以后,又自动开机了,如何才能解决电脑关机后又自 ...
- KYLIN设置屏幕缩放后的配置文件研究
研究办法 UOS设置屏幕缩放后的配置文件研究_柳鲲鹏-CSDN博客 修改设置后的变化 -rw-rw-r-- 1 wuxi wuxi 22 1月 24 13:18 ./home/wuxi/.config ...
- android app自动锁屏,Android开机自动启动app 不锁屏
Android开机自动启动app 不锁屏 发布时间:2020-07-17 03:22:20 来源:51CTO 阅读:2086 作者:清水禅石 主要参考:http://life173.blog.51ct ...
最新文章
- linux线程有什么用,在linux下查看一个进程它有多少个线程是用什么命令?
- mac os 10.14.5 update failure
- datetime数据类型_系统数据类型
- python代码案例详解-Python综合应用名片管理系统案例详解
- 二本毕业,努力 5 年,月入 5w 的程序员和他们的公众号
- java 嵌套类 作用_java 嵌套类的分类、为什么使用嵌套类?
- java xml dom getelementbyid,DOM中常见的元素获取方式
- ios 10.3 汉字的中划线
- Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)
- 树算法系列之一:CART回归树
- 济南铃木UU125无破线改装仪表盘详解
- 编程灵异事件簿(一)
- 【白话科普】从“熊猫烧香”聊聊计算机病毒
- 原腾讯QQ空间负责人,T13专家,黄希彤被爆近期被裁员,裁员原因令人唏嘘。。...
- python变量、类型及转换
- java公社博客_Java
- C/S软件架构设计模式
- 【JZOJ3054】祖孙询问【LCA】
- 【Matlab】开发环境介绍及学习方法
- 泛微OA系统多版本存在命令执行漏洞
热门文章
- 为什么python提示没有clock_python – 为什么time.clock比time.time给出更长的时间?
- uboot下nand flash读写方法_鸿蒙HarmonyOS烧录方法总结
- 个性签名设计软件_佩服!我用Python设计了一个签名软件
- php 开发一个聊天系统,ajax+php 实现一个简单的在线聊天室功能(附带源码)
- SpringBoot使用Websocket
- dataframe记录数_大数据系列之Spark SQL、DataFrame和RDD数据统计与可视化
- flask mysql 1366_2017-11-17 Python Flask Script+mysql环境设置
- source code怎么用_code-builder代码生成器
- 11 - java构造方法
- Java 线程状态流转