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万+

西门子S7-200 SMART与施耐德ATV变频器Modbus通讯实战:从接线到稳定运行的完整指南

本文详细介绍了西门子S7-200 SMART PLC与施耐德ATV变频器之间实现稳定Modbus通讯的完整实战指南。内容涵盖从硬件接线、参数配置、PLC程序编写到触摸屏设计的全流程,并分享了提升通讯稳定性的关键技巧和常见故障排查方法,助力工业自动化系统可靠运行。

kkk56的博客 1106

最优控制理论 二+、哈密尔顿函数法的补充

本章基于变分法所推出的哈密尔顿函数法,2、讨论了积分方程约束的转化、控制+状态等式约束的一阶必要条件。3、控制分段连续、状态存在内点约束等情况下的角点条件,给出了协态变量和哈密尔顿函数在内点处不连续的表达式。...

MSysの优快云 9394

Android 屏幕方向相关,setRequestedOrientation,OrientationEventListener

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

lidongxiu0714 2万+

极路由 极1s J1S hc5661 刷padavan固件

极路由1S刷机指南 准备工作: 下载Breed不死固件 通过WinSCP上传或直接wget获取 执行mtd命令写入Breed 关键步骤: 进入Breed控制台(按住Reset键开机) 备份原厂固件和密钥 下载Padavan固件(RT-N14U-GPIO-12-xiaodu-ji1S-128M.trx) 刷机过程: 在Breed控制台更新固件 等待自动重启完成 初始设置: 管理地址:192.168.123.1 默认账号:admin/admin 无线名称:PCDN 无线密码:1234567890 注意事项:切勿

SimonLiu的博客 1302

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

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

冬无雪的博客 1504

CMU的local_planner学习笔记

ros::Subscriber subOdometry = nh.subscribe//当接收到/state_estimation话题消息更新时启动odometryHandler回调函数 (消息格式:nav_msgs::Odometry消息内容:关于机器人或车辆的位置和方向(姿态)信息)pcl::PointCloud::Ptr freePaths(new pcl::PointCloud());

qq_35971623的博客 3878

2026年瑞芯微数字IC设计笔试试卷带答案

本文主要考察数字集成电路设计相关知识,包括低功耗设计、时序分析、跨时钟域处理、总线协议等内容。试题分为单选题、多选题、代码设计题和简答题四部分。 单选题涉及门控时钟降低动态功耗、静态时序分析的限制、跨时钟域同步方案、时序违例修复方法、AHB总线信号、异步FIFO设计、半导体工艺电阻特性、二进制数转换、同步/异步复位比较以及分频电路设计等知识点。 多选题重点考查动态功耗优化技术、亚稳态特性、异步FIFO设计规范、Verilog可综合代码编写要求以及AXI总线协议特点等。 代码设计题要求实现一个同步FIFO和3

Open 215

Android 设置screenOrientation 一直警告报红

android:screenOrientation="portrait" 报红

hzy670800844的博客 2687

基于Simulink的异步电机参数在线辨识与自适应控制仿真

本文基于Simulink平台,详细介绍了异步电机参数在线辨识与自适应控制系统的仿真实现。针对异步电机运行中参数时变问题,采用模型参考自适应系统(MRAS)实时辨识转子电阻和互感,并结合自适应PI控制策略动态调整控制器参数。通过搭建完整的矢量控制(FOC)仿真模型,验证了系统在稳态辨识、参数摄动和动态响应等工况下的性能:参数辨识误差<1.2%,转速跟踪误差<20rpm,动态响应时间<10ms。文章还提供了详细的Simulink建模步骤、核心代码实现及性能分析,为高级电机控制系统的设计与优化提

amy_mhd的博客 72

android:screenOrientation横屏竖屏设置

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

proheart的专栏 3764

基于Simulink的BCH码编解码仿真建模示例

BCH码是一类循环码,能够纠正一定数量的随机错误。灵活性:可以根据需要选择不同的码长和纠错能力。高效性:适用于短码长和中等码长的场景,广泛用于卫星通信、存储系统等。实现简单:编码和解码过程可以通过硬件或软件高效实现。在本示例中,我们将使用MATLAB/Simulink中的和模块来完成BCH码的编解码操作,并通过仿真验证其误码率(BER)性能。通过本指南,我们介绍了如何基于Simulink搭建一个BCH码的编解码模型,并进行了仿真以验证其性能。背景介绍:理解BCH码的基本原理及其在通信系统中的应用。

xiaoheshang_123的博客 191

RK3588开发笔记-ES8311音频芯片调试记录

本篇博客主要记录如何在RK3588平台试ES8311音频芯片的过程。这包括硬件连接、内核配置、驱动程序调试和测试步骤。通过以上步骤,我们成功在RK3588平台上调试了ES8311音频芯片。这包括硬件连接、内核配置、设备树配置、驱动加载以及音频测试。希望这篇调试记录能为其他开发者提供一些帮助。如果你有任何问题或建议,欢迎留言讨上调论。

flypig has a dream! 3162

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

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

小&哥 5118

VB摄像头监控

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

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

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

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

NTscan扫描工具

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

安卓设置screenOrientation报红

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

mafanwei的博客 2383

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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、付费专栏及课程。

余额充值