Android的screenOrientation设置

首先在AndroidManifest.xml中,对需要设置的Activity加上如下两条属性:

   android:configChanges="orientation|keyboard" (转屏时不重置Activity,
	若设置了此项,则无法为横向和纵向分别设置不同的布局。因为转屏时不会删除并重新加载)
    android:screenOrientation="sensor" (开启重力传感器) 

 转屏函数:

import android.content.pm.ActivityInfo;

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR); 
//强制指定纵向 value为5

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); 
//强制指定反方向纵向 value为9

 重力传感器监测:

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;

public class asd extends Activity{
	SensorManager mManager;
	Sensor mSensor;
	SensorEventListener mListener;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		setRequestedOrientation(5);//初始化屏幕方向
	       mManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
	       mSensor = mManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 
	       mListener = new SensorEventListener() { 
	        public void onAccuracyChanged(Sensor sensor, int accuracy) { 
	          };
	        public void onSensorChanged(SensorEvent event) { 
	         float x = event.values[SensorManager.DATA_X]; 
	         float y = event.values[SensorManager.DATA_Y]; 
	         float z = event.values[SensorManager.DATA_Z]; 
	         setCustomOrientation(x, y, z); 
	        }; 
	       }; 
	       mManager.registerListener(mListener, mSensor, SensorManager.SENSOR_DELAY_GAME);
	}
	
	public void setCustomOrientation(float x, float y, float z) { 
		 
		 if(y > 1.5)
		 {
		  //setRequestedOrientation(
		  //	ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
		   setRequestedOrientation(5);
		 }
		 else if(y < -1.5)
		 {
		     setRequestedOrientation(9);
		 }
		};
		@Override  
		protected void onResume() {   
		    super.onResume(); 
		 mManager.registerListener(mListener, mSensor, 
		SensorManager.SENSOR_DELAY_GAME); 
		};

		@Override  
		protected void onPause() {   
		    super.onPause(); 
		 mManager.unregisterListener(mListener); 
		};
}

 

Android屏幕旋转失效?解析screenOrientation与系统设置的优先级冲突 本文深入解析Android开发中screenOrientation与系统设置的优先级冲突问题,详细介绍了屏幕旋转失效的原因及解决方案。通过分析AndroidManifest.xml配置、传感器参数影响及系统设置交互机制,提供动态检测、版本兼容处理等实用方案,帮助开发者实现更精准的屏幕方向控制。 阅读详情

相关推荐

Android竖屏锁定失效?深入解析screenOrientation优先级与系统设置冲突

本文深入解析了Android开发中常见的竖屏锁定失效问题,揭示了`screenOrientation`属性与系统自动旋转设置之间的优先级冲突。通过对比`portrait`、`unspecified`、`user`等不同值的实际行为,文章提供了兼容性最佳的解决方案:建议使用`user`或`unspecified`声明,并配合代码动态监听系统设置,以实现既满足应用需求又尊重用户全局设置的完美竖屏锁定。

pandas7gardener的博客 432

android:screenOrientation属性详解

landscape:限制界面为横屏,旋转屏幕也不会改变当前状态。 portrait:限制界面为竖屏,旋转屏幕也不会改变当前状态。 sensor:根据传感器定位方向,旋转手机90度,180,270,360,界面都会发生变化。 sensorLandscape:(横屏的旋转,不会出现竖屏的现象)根据传感器定位方向,旋转手机180度界面旋转。一般横屏游戏会是这个属性。 sensorPortrait

学无止境 9636

Android XML設置屏幕方向(android:screenOrientation)详解

Android  XML設置屏幕方向(android:screenOrientation)详解 注意:Android只支持270度旋转。 <activity android:name=.MyActivity android:label=@string/app_name android:screenOrientation=portrait> android:screenOrientation设定该活动的方向, 该值可以是任何一个下面的字符串: “unspecified” – 默认值. 由系统选择显示方向. 在不同的设备可能会有所不同. “land

Android screenOrientation 屏幕方向的设定与控制

AndroidManifest.xml中Activity标签中的设定值: android:screenOrientation="landscape"为90度(横屏) android:screenOrientation="reverseLandscape"为270度(反向横屏) android:screenOrientation="sensorLandscape"为90度和270度

daiqiquan的专栏 2万+

Android OTA 升级实战指南:从原理到实现

本文详细解析了Android OTA升级的原理与实现方法,包括AB升级与Recovery升级的机制对比、OTA升级包制作流程以及应用层升级功能的实现。通过实战案例和常见问题排查指南,帮助开发者掌握Android系统无线升级技术,提升设备维护效率。

weixin_42652674的博客 199

YALMIP介绍及怎么在Matlab中加YALMIP、SDPT3

目录YALMIP简介怎么在Matlab中加YALMIP?1. 创建决策变量:2. 添加约束:3. 参数配置4. 求解怎么在MatlabR2019a中加YALMIP?1.下载工具包2.放置工具包3.添加路径4.测试安装结果怎么在MatlabR2019a中加SDPT3? YALMIP简介 怎么在Matlab中加YALMIP? yalmip是一位“集大成者”,它不仅自己包含基本的线性规划求解算法,比如linprog(线性规划)、bintprog(二值线性规划)、bnb(分支界定算法)等,他还提供了对cpl

m0_51431440的博客 2万+

Android 屏幕方向相关,setRequestedOrientation,OrientationEventListener

1 Activity 在AndroidManifest.xml设置方向android:screenOrientation 正向拿着手机(平时正常拿手机)对应角度为0度,此时屏幕为为竖屏,旋转180度,对应角度180度,此时屏幕为反向竖屏; 90时此时屏幕为横屏(用户右侧(正向)横屏拿着手机),屏幕角度为270,此时屏幕为反向横屏。 Android可以利用android:screenOrientat...

lidongxiu0714 2万+

分布式 Agent 系统设计:高并发场景下的挑战与解决方案

分布式 Agent 系统由多个分布在不同节点上的智能 Agent 组成,这些 Agent 具有自主决策能力,能够通过通信协作完成复杂任务。每个 Agent 可以看作是一个独立的实体,具备感知环境、处理信息、执行动作的功能,它们相互协作,共同实现系统的整体目标。分布式 Agent 系统在高并发场景下面临着资源调度、通信延迟、状态一致性、容错处理和性能瓶颈等诸多挑战。通过采用动态资源分配、高效通信协议、分布式共识算法、冗余备份等解决方案,可以有效应对这些挑战,提高系统的性能、可靠性和可用性。

shuizhudan223的博客 1292

Android activity的屏幕显示方向screenOrientation属性设置

Activity在屏幕当中显示的方向。screenOrientation属性值可以是下表中列出的一个值: (在AndroidManifest中对应的activity配置中设置) Value 说明 “unspecified” 默认值,由系统来选择方向。它的使用策略,以及由于选择时特定的上下文环境,可能会因为设备的差异而不同。 “user” 使用用户当前首选的方向。 “behi...

冬无雪的博客 1504

simulink中MIL测试简单理解

输入信号设置如下:选中New Test Case1 ---INPUT。5、新建(选择New,Test from Spreadsheet)6、可以新建也可以导入(Use existing test)Source:Output为自己预测结果。3、右键子系统(Create)打开生成表格,可以自己调试。4、创建测试用例表格。保存路径为模型路径。保存路径在模型路径。8、运行测试设h置。

lingdianhuat的博客 1784

Autosar结合simulink的汽车应用层软件开发实例

本文基于汽车应用开发案例,并结合Autosar相关知识,生成具有Autosar标准的汽车应用层开发代码,以供学习和参考。以上就是本篇内容,主要是利用Simulink创建Autosar接口并进行端口映射的方法。

m0_64899535的博客 2152

Android 设置screenOrientation 一直警告报红

android:screenOrientation="portrait" 报红

hzy670800844的博客 2687

FPGA数字下变频实战:用Vivado DDS IP核实现IQ采样与频率校正(附MATLAB仿真对比)

本文提供了一份基于Vivado DDS IP核实现FPGA数字下变频(DDC)的完整工程指南。详细阐述了IQ采样的原理、DDC链路构建、DDS频率校正的工程实现,并重点介绍了如何利用MATLAB搭建黄金参考模型进行全链路仿真与对比验证,分享了关键的调试技巧与性能优化建议。

t1u2v的博客 810

android:screenOrientation横屏竖屏设置

在开发android的应用中,有时候需要限制横竖屏切换。只需要在AndroidManifest.xml文件中加入android:screenOrientation属性限制。 1 android:screenOrientation="landscape"是限制此页面横屏显示, 2 android:screenOrientation="portrait"是限制此页面数竖屏显示。 andr

proheart的专栏 3764

C++-ONNX:用onnxruntime部署自己的模型【Pytorch导出.onnx】【Tensorflow导出.onnx】【C++用onnxruntime框架部署并推理】

微软联合Facebook等在2017年搞了个深度学习以及机器学习模型的格式标准–ONNX,旨在将所有模型格式统一为一致,更方便地实现模型部署。现在大多数的深度学习框架都支持ONNX模型转出并提供相应的导出接口。ONNXRuntime(Open Neural Network Exchange)是微软推出的一款针对ONNX模型格式的推理框架,用户可以非常便利的用其运行一个onnx模型。ONNXRuntime支持多种运行后端包括CPU,GPU,TensorRT,DML等。

u013250861的博客 5766

风光储并网对电力系统稳定性影响的仿真研究

本文研究了风光储并网对电力系统稳定性的影响,基于MATLAB/Simulink平台搭建了IEEE 9节点测试系统的风光储并网模型。研究对比了光储、风储和风光储三种并网配置在多种干扰下的稳定性表现。结果表明:光储系统对频率变化最敏感,风储系统具有更强的功率波动适应能力,而风光储联合系统通过互补效应展现出最佳综合稳定性。储能系统在所有配置中均显著改善了频率恢复性能,验证了其在新能源并网中的关键支撑作用。研究为高比例可再生能源电力系统的稳定运行提供了仿真依据和技术参考。

huanghm88的专栏 153

android:screenOrientation属性(设置横屏竖屏)

在开发android的应用中,有时候需要限制横竖屏切换。只需要在AndroidManifest.xml文件中加入android:screenOrientation属性限制。 android:screenOrientation="landscape"是限制此页面横屏显示,      android:screenOrientation="portrait"是限制此页面数竖屏显示。  

小&哥 5118

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android:screenorientation 不起作用,android – 设置screenOrientation到肖像不起作用

你可以做下面这样的事情在java中的rootView之后添加这一行getActivity().setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); // programmatically对于Ex:View rootView = inflater.inflate(R.layout.activityxml,contai...

weixin_36275605的博客 365

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

安卓设置screenOrientation报红

新版本的Android Studio 在activity里设置android:screenOrientation="portrait"会报红,编译器提示我们使用fullSensor替代portrait,但是我们就希望设置竖屏不想跟随传感器,那么我们可以在application下加入xmlns:tool="http://schemas.android.com/tools" 和tool:ignore=...

mafanwei的博客 2383

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android screenOrientation 设置竖屏失效

问题是这样的,当我在AndroidManifest.xml文件中设置如下代码: <activity android:name=".MainActivity" android:screenOrientation="portrait" android:launchMode="singleTask"/> 发现,在手机不显示横竖屏切换的时候,页面还是会随着手机的横竖切换而变化。 这时只要在BaseActivity里面设置如下代码即

weixin_39592302的博客 1868

android屏幕方向设置android:screenOrientation属性

android:screenOrientation支持的属性。众所周知,Android应用程序中,android:screenOrientation用于控制activity启动时方向,取值可以为: unspecified,默认值,由系统决定,不同手机可能不一致 landscape,强制横屏显示 portrait,强制竖屏显 behind,与前一个activity方向相同 sensor,根据物理传感器方向转动,用户90度、180度、270度旋转手机方向,activ

m0_59911218的博客 1万+

通過XML設置屏幕方向(android:screenOrientation)详解

参考 http://androidbiancheng.blogspot.kr/2010/10/xmlandroidscreenorientation.html 参考 http://blog.youkuaiyun.com/zeng622peng/article/details/6572115   通過XML設置屏幕方向(android:screenOrientation)详解 分类:

突围 789
上一篇: 内部Handler类引起内存泄露
下一篇: ant打包
biandroid
博客等级 码龄15年 3粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值