android横竖屏总结

android横竖屏切换问题 上篇博文介绍了一下关于unity接入华为sdk的问题,最后发现发布到android机器上横竖屏的切换问题会导致接入华为sdk后付款后退出华为账号进入游戏提示登录,登录后卡死、闪退、黑屏等问题。经过在网上查了一些资料得知,可能是android横竖切换重新加载Activity导致。    然后我就在查了一下关于android横竖屏切换问题。关于横竖屏切换,在unity中 Player setting 阅读详情

作者:黄鑫刚


Android横竖屏要解决的问题应该就两个:一。布局问题;二。重新载入问题。

1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的 AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数:

"unspecified" 
默认值由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.  


"landscape" 
横屏显示(宽比高要长) 


"portrait" 
竖屏显示(高比宽要长) 


"user" 
用户当前首选的方向 


"behind" 
和该Activity下面的那个Activity的方向一致(在Activity堆栈中的) 


"sensor" 
有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。 


"nosensor" 
忽略物理感应器,这样就不会随着用户旋转设备而更改了( "unspecified"设置除外)。


也可以在Java代码中通过setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);来设置。

如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局。可以通过以下方法来切换布局:


1)在res目录下建立layout-land和layout-port目录,相应的layout文件不变,比如main.xml。layout-land是横屏的layout,layout-port是竖屏的layout,其他的不用管,模拟器会自动寻找。


2)通过this.getResources().getConfiguration().orientation来判断当前是横屏还是竖屏然后来加载相应的xml布局文件。因为当屏幕变为横屏的时候,系统会重新呼叫当前Activity的OnCreate方法,你可以把以下方法放在你的OnCreate中来检查当前的方向,然后可以让你的SetContentView来载入不同的Layout xml. 


if (this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_LANDSCAPE) { 
Log.i("info", "landscape"); 
} 
else if (this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT) { 
Log.i("info", "portrait"); 
}


2.重新载入问题。如果不需要从新载入,可以在androidmanifest.xml中加入配置android:configChanges="orientation",配置android:configChanges的作用就是如文档所说的:Specifyone or more configuration changes that the activity will handle itself. If notspecified, the activity will be restarted if any of these configuration changeshappen in the system。这样在程序中. Activity就不会重复的调用onCreate()甚至不会调用onPause.onResume.只会调用一个onConfigurationChanged(ConfigurationnewConfig)。

–*************其实在这里我遇到两个奇怪的问题,那就是

1.如果我在android:configChanges中只设置orientation,他依然会重新加载,只有设置了orientation|keyboardHidden它才会只调用一个onConfigurationChanged(ConfigurationnewConfig)


2.当横屏变竖屏的时候,他会调用两次onConfigurationChanged,而竖屏转横屏时他只调用一次onConfigurationChanged,真是太奇怪了。如果你知道,欢迎留言共同探讨*************–


如果需要重新载入,则不需要做任何修改。不过如果需要在重新载入过程中保存之前的操作内容或数据,则需要保存之前的数据。然后在activity的onCreate()中取出来。当然,如此就不能设置android:configChanges()了,否则就不会调用onCreate()方法。那么数据可以保存在哪呢?Android中四种存储方法都可以,另外,还可以用Android为我们提供了onRetainNonConfigurationInstance()方法来暂时保存数据。

下面为此举个例子:

保存临时图片:

1.	@Override
2.	public Object onRetainNonConfigurationInstance() { 
3.	final LoadedPhoto[] list = new LoadedPhoto[numberOfPhotos]; 
4.	    keepPhotos(list); 
5.	return list; 
6.	} 


之后便可以在activity的onCreate()函数中实现重新调用临时文件,在代码中需要判断系统是否需要重新加载临时文件。以下是放在OnCreate()函数中加载临时文件的代码:

1.	private void loadPhotos() { 
2.	final Object data = getLastNonConfigurationInstance(); 
3.	 
4.	// The activity is starting for the first time, load the photos from Flickr
5.	if (data == null) { 
6.	        mTask = new GetPhotoListTask().execute(mCurrentPage); 
7.	    } else { 
8.	// The activity was destroyed/created automatically, populate the grid
9.	// of photos with the images loaded by the previous activity
10.	final LoadedPhoto[] photos = (LoadedPhoto[]) data; 
11.	for (LoadedPhoto photo : photos) { 
12.	            addPhoto(photo); 
13.	        } 
14.	    } 
15.	} 



对于大多数的情况并不需要做如上的操作,所以需要谨慎使用这个行文,毕竟最好的行为也并不适用于所有情况,如果应用的不好反而会给程序带来不必要的麻烦。

如果要彻底禁止翻转,可以设置android:screenOrientation的属性为nosensor,如此就可以忽略重力感应带来的麻烦了。不过不知道为什么,在模拟器上不管用,在真机上是正确的。

 


android用布局切换横竖屏,Android 横竖屏切换加载不同的布局 横屏竖屏在配置文件中的设置,之前已经说过。那么现在主要是说,切换之后由于屏幕宽高尺寸的改变,因此需要重新设置一个布局文件以适应现在的新的尺寸。缺省状态下,Activity每次横竖屏切换(包括用setRequestedOrientation调用)都会重新调用一轮onPause-> onStop-> onDestory-> onCreate->onStart->onRes... 阅读详情

相关推荐

Android横竖屏解析

相信大家都或多或少的为横竖屏烦恼过吧,毕竟我们在开发中用到这方面的知识还是挺多的,比如我上一篇讲VideoView的博客,在播放视频的时候,能够自如的切换横竖屏是很有必要的。所以这篇博客就来解析Android中的横竖屏。1、screenOrientation当手机没有关闭横竖屏切换功能时,系统一旦触发横竖屏切换,缺省状态(即系统默认状态)下,当前活动的App的界面就会进行横竖屏切换,由于横竖屏的界面

HardWorkingAnt的博客 1651

android 横竖屏 触摸,安卓横竖屏切换时不触发onCreate方法

如题默认情况下,当安卓应用横竖屏之间切换时,每次切换都会触发onCreate,如果你的应用是一个hybird应用,那体验惨爆了,刚刚还在一个二级页面,横屏一下立马又回到首页,所以我们必须想办法禁止这种行为。方法很简单,针对AndroidManifest.xml中对应Activity增加设置android:configChanges="orientation|keyboardHidden|scree...

weixin_35346761的博客 654

Android 横竖屏切换总结

一.Android切换横竖屏 应用的横竖屏设置 应用的横竖屏设置主要是通过Activity的screenOrientation属性控制,属性值如下: 主要有以下两种方式设置screenOrientation属性值 静态设置,即在Mainfest文件中配置screenOrientation属性 动态设置,即调用Activity的setR...

limushan的博客 1852

关于Android平板横竖屏切换失败的解决方案

Android平板横竖屏切换失败的解决方案

安卓开发&音视频开发 9546

Android 横竖屏切换

1.横竖屏切换 Android横竖屏要解决的问题应该就两个: ①布局问题 ②重新载入问题 ③生命周期问题 2.布局问题 ①如果不想让app在横竖屏之间切换,可以在AndroidManifest.xml中指定的activity中加上android:screenOrientation属性,有以下几个参数: "unspecified":默认值 由系统来判断显示方向。判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.。 "landscape":横屏显示 "portrait":竖屏显.

zenmela2011的专栏 6416

5-DOF机械臂课程设计(一)之正逆运动学

文章目录基本要求基本概念关节坐标系的建立正运动学求解DH参数表的建立逆运动学求解多解下解的选取源码下载后续 基本要求 ​ 开发上位机程序,要求有良好的界面,能提供关节空间下和笛卡尔坐 标下表示的目标位姿点和中间若干经过点的输入功能,进行轨迹规划, 并控制机械臂沿轨迹运动,最终完成目标抓取的任务。 基本概念 连杆长度 :2个相邻关节轴线之间的距离 连杆扭角 :2个相邻关节轴线之间的角度 连杆偏距 :2个关节坐标系的X轴之间的距离 关节角度 :关节变量 计算时需要加初始角度偏移 关节坐标系的建立 ​ 根据《机

Rosen的博客 5856

android区别加载横竖,安卓横竖屏切换的几种情况

横竖屏切换在APP中的应用非常常见。有的界面只能在横屏或竖屏显示,有的界面可以横竖屏自适应,有的横竖屏使用不同的界面布局。我们来逐渐总结和比较一下这几种方式。1. 最简单的一种:横竖屏自适应就是,同一种布局,但是在横竖屏切换时自动调整长宽。不必新写布局。操作简单。不过有的时候可能无法满足美观和使用需要。但是,这种方法会保存界面数据,不会重刷一次该Activty的生命周期。用法非常简单,直接在And...

weixin_29786123的博客 489

数据结构——滑动窗口

入:下标为 i 的元素进入窗口,更新相关统计量。如果 i < k−1 则重复第一步更新:更新答案。一般是更新最大值 / 最小值出:下标为 i−k+1 的元素离开窗口,更新相关统计量✔1. 定长子串中元音的最大数目✔2. 找到一个数字的 K 美丽值✔4. 子数组的最大平均数 |方法一:前缀和方法二:滑动窗口7. 得到 K 个黑块的最少涂色次数8. 爱生气的书店老板9. 几乎唯一子数组的最大和10. 长度为 K 子数组中的最大和11. 可获得的最大点数12. 最少交换次数来组合所有的1 ||

qq_68915288的博客 762

android webview 横竖屏_Android 切换横竖屏

一个项目一般会自己先定义项目是横屏还是竖屏但是也有可以横屏和竖屏之间切换的activty。切换横竖屏的方法://判断当前屏幕方向if(getRequestedOrientation() == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {//切换竖屏MainActivity.this.setRequestedOrientation(ActivityInfo...

weixin_35171513的博客 2521

Synopsys AXI VIP 从环境搭建到首个验证场景运行

本文详细介绍了Synopsys AXI VIP从环境搭建到首个验证场景运行的全过程,包括VIP安装、示例工程生成、验证环境解析、仿真调试技巧及进阶优化。特别针对AXI协议验证中的常见问题提供了实用解决方案,帮助工程师快速掌握这一SoC验证必备工具。

weixin_29185493的博客 340

交叉熵损失函数基本概念及公式

对于二分类问题,模型的输出通常是一个标量,表示样本属于正类的概率。因此,在二分类的交叉熵损失函数中,我们只需要考虑一个概率值,即模型预测为正类的概率。具体来说,当真实标签为1时,我们关注模型预测为正类的概率;当真实标签为0时,我们关注模型预测为负类的概率。因此,二分类的交叉熵损失函数可以表示为:其中,y 表示真实标签,取值为 0 或 1;p 表示模型预测为正类的概率。而对于多分类问题,模型的输出通常是一个向量,表示样本属于各个类别的概率。因此,在多分类的交叉熵损失函数中,我们需要考虑所有类别的概率。

qlkaicx的博客 1万+

Android横竖屏切换总结

Android横竖屏切换总结(Android资料) Android横竖屏要解决的问题应该就两个: 一.布局问题 二.重新载入问题 1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数: "unspecified"

jiangxinyu的专栏 9万+

【AI】在RK3576上,使用RKNN实现MeloTTS(文本转语音)

在瑞芯微的RK3576上实现TTS(文本转语音)功能,使用CPU实现时,几乎把CPU资源全部耗尽,没有实用价值。通过将MeloTTS转为onnx,再转为RKNN,来使用RK3576的NPU硬件加速,成功实现TTS。

郭老二 563

关于安卓中的横竖屏切换

在安卓中有两种横竖屏切换的方式: 1.在Manifest.xml中设置 <activity android:name="xxx.xxx.xxxActivity" android:screenOrientation="portrait"/> *screenOrientation:属性共有两种* android:screenOrientation=”portrait” 始终竖屏...

冯开心吖的博客 210

YOLOv8性能突破:DySample超轻量动态上采样算子的创新应用与实现【附保姆级代码】

YOLOv8(You Only Look Once Version 8)作为YOLO系列模型的最新版本,延续了高效、准确的目标检测优势。其基础结构包含了骨干网络(Backbone)、检测头(Head)、以及特征融合层(Neck)。在特征融合阶段,YOLOv8需要对不同尺度的特征图进行上采样,以便将低分辨率的特征与高分辨率的特征进行融合。传统的上采样操作多使用插值(如双线性插值)或固定卷积,而这些方法可能无法很好地适应复杂的上下文信息。

一键难忘的博客 3120

Modbus协议介绍及解析

Modbus协议介绍及解析 1.Modbus简介 Modbus是一种广泛应用于工业控制领域串行通信协议,以其开放性、高可靠性、高效简单性、免费等优点,成为了工业领域通信协议的业界标准,是工业现场电子设备之间常用的连接方式。Modbus按其格式可分为Modbus-RTU,Modbus-ASCII,Modbus-TCP,其中前两者适用于串行通信控制网络中,例如RS485,RS232等,而Modbus-TCP主要应用于基于以太网TCP/IP通信的控制网络中。通过此协议,控制器相互之间、或控制器和其它设备之间进行通

逍遥子的博客 1万+

android横竖屏切换 生命周期,安卓横竖屏切换时的生命周期

横屏切换竖屏Activity的生命周期。现在给大家分析一下他切换时具体的生命周期是怎么样的。1、新建一个Activity,并把各个生命周期打印出来2、运行Activity,得到如下信息onCreate–>onStart–>onResume–>3、按crtl+f12切换成横屏时onSaveInstanceState–>onPause–>onStop–>onDest...

weixin_39613951的博客 1769

哨兵1号后向散射系数土壤水分反演

打开之前预处理之后的VH和VV极化的后向散射系数转存的tiff文件。

所有专家都曾始于新手 3292

Android横竖屏总结全

Android横竖屏要解决的问题应该就两个:一.布局问题二.重新载入问题1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数:“unspecified”:默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显

TIANWENJU 1902

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jre9下载 jdk9

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

安卓横竖屏切换改变布局文件1

安卓横竖屏切换改变布局文件1 开启安卓的自动旋转,在改变方向后,自动更改布局文件,其中activity会重启,数据不会保存,需要后面进行数据保存恢复 在AndroidManifest添加 android:configChanges="keyboardHidden|screenSize|orientation" 正常横竖屏切换的生命周期: onPause()->onSaveInstanceState()-> onStop()->onDestroy()->onCreate()->o

qq_43345810的博客 969

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Android 关于横竖屏

横竖屏切换后Activity会重新执行onCreat函数,但是在Android工程的Mainfest.xml中加入android:screenOrientation="user" android:configChanges="orientation|keyboardHidden"之后,横竖屏切换之后就不会去执行OnCreat函数了,而是会去调用onConfigurationChanged(),这样...

weixin_30711917的博客 76

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android实现自动横竖屏切换,android 中实现横竖屏切换【原创】

我们在使用android手机的时候,发现一些应用有横竖屏切换的功能,一般实现有以下几种方法:一、设置1.通过XML设置横竖屏切换在项目的 AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,它有以下几个参数:“unspecified” 默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示...

weixin_35927281的博客 4150

android 横竖屏幕切换,Android 横竖屏切换总结

一.Android切换横竖屏应用的横竖屏设置应用的横竖屏设置主要是通过Activity的screenOrientation属性控制,属性值如下:主要有以下两种方式设置screenOrientation属性值静态设置,即在Mainfest文件中配置screenOrientation属性动态设置,即调用Activity的setRequestedOrientation(@ActivityInfo.Scr...

weixin_42340136的博客 4966

android的横竖屏切换,Android横竖屏切换 初步探究

当手机横竖屏切换的时候,activity,默认会重新走一遍生命周期,即销毁当前,然后重新创建首先,很多软件在设计和开发中为了避免横竖屏切换时引发不必要的麻烦,通常需要让App禁止掉横竖屏的切换,这就需要通过在AndroidManifest.xml中设置activity中的android:screenOrientation属性值来实现.我们可以固定activity的横竖屏,即强制横屏或者竖屏,这样的...

weixin_36249942的博客 771
上一篇: android Motion Senor API 简介
下一篇: Service中使用Toast显示问题
pku_android
博客等级 码龄15年 450粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值