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

PADS Layout差分对布线实战:从规则设置到高速信号优化

本文详细讲解了在PADS Layout中进行差分对布线的完整实战流程。从在Layout中定义差分对网络,到进入Router配置线宽、间距等关键规则,再到布线实战技巧与高速信号完整性优化,系统阐述了如何确保差分信号(如USB、HDMI)的稳定传输,是高速PCB设计的核心技能。

weixin_29274969的博客 522

从零搭建AMESim与Matlab/Simulink联合仿真环境(2024版软件配置详解)

本文详细介绍了2024年最新版AMESim与Matlab/Simulink联合仿真环境的搭建与配置方法。从软件安装顺序、路径设置到编译器配置,逐步指导如何实现高效联合仿真,特别强调了版本兼容性和环境变量设置等关键细节,帮助工程师快速解决常见问题并优化仿真性能。

weixin_42538752的博客 735

Android 屏幕方向相关,setRequestedOrientation,OrientationEventListener

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

lidongxiu0714 2万+

EPICS电机支持(asynMotor)

EPICS电机支持(asynMotor)

yuyuyuliang00的博客 915

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

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

冬无雪的博客 1504

GAN模型中的常见变体有哪些,如DCGAN、WGAN和CGAN等?

生成对抗网络(GAN)是一种强大的深度学习模型,它由生成器和判别器两个网络组成,通过对抗训练的方式实现生成数据的能力。随着研究的发展,出现了许多GAN的变体,每个变体都有其独特的改进和特点。

huidhsu的博客 2261

华三(H3C)网络设备配置命令大全与学习指南

本文全面介绍 H3C 网络设备的配置命令,涵盖路由器、交换机、ACL、NAT、VTY、SSH、本地用户、日志、STP、防火墙、QoS 等模块,适合网络工程初学者与运维人员参考。

DreamCollector的博客 6565

Android 设置screenOrientation 一直警告报红

android:screenOrientation="portrait" 报红

hzy670800844的博客 2687

Simulink智能驾驶场景探索:自动泊车系统设计与验证

自动泊车系统(APS)传感器模块:用于检测车辆周围的障碍物和其他车辆的位置。路径规划模块:根据传感器数据生成最优的泊车路径。控制器模块:根据路径规划结果生成转向角、速度等控制信号。执行器模块:根据控制器生成的信号调整车辆的方向盘、油门和刹车。在本实例中,我们将使用超声波传感器和摄像头来检测车辆周围的环境,并使用PID控制器实现自动泊车功能。通过本教程,我们介绍了如何使用 Simulink 进行自动泊车系统的仿真。背景介绍:理解自动泊车系统及其在智能驾驶中的应用。所需工具和环境。

MHD0815的博客 506

android:screenOrientation横屏竖屏设置

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

proheart的专栏 3764

指纹对抗指南:如何绕过Cloudflare与Akamai的5s盾与浏览器指纹检测

现在的CDN反爬技术虽然越来越强,但是道高一尺魔高一丈,只要掌握了指纹伪造、流量伪装、行为模拟这些核心技术,就可以绕过绝大多数的防护措施。对抗过程中要注意效率和成本的平衡,小规模爬取用Playwright+stealth最方便,大规模爬取用curl_cffi+代理池性价比最高,遇到验证码用打码平台或者自动识别服务,不需要死磕破解。本文介绍的方案已经在实战中验证过,可以绕过95%以上的Cloudflare/Akamai防护,成功率非常高。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 297

FPGA/IC 秋招笔试/面试题总结

文章目录一、FPGA内部资源1. 什么是FPGA2.FPGA内部资源二、同步时钟、同步/异步电路1.同步时钟2.同步/异步电路三、同步复位/异步复位1.同步复位2. 异步复位3. 异步复位同步释放四、同步FIFO/异步FIFO1.同步FIFO2.异步FIFO五、FIFO最小深度计算1.FIFO最小深度2.示例分析六、逻辑电平1.TTL电平标准2.LVTTL电平标准3.CMOS电平标准4.LVCOMS电平标准5.RS2326.RS4857.ECL、PECL、LVPECL8.LVDS9.CML10.GTL11

Crazzy_M的博客 4万+

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

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

小&哥 5118

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

安卓设置screenOrientation报红

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

mafanwei的博客 2383

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

余额充值