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.

  1. if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){  
  2.     Log.i("info", "landscape"); // 横屏 
  3. }  
  4. else if (this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT) {  
  5.     Log.i("info", "portrait"); // 竖屏 
  6. } 

在onConfigurationChanged()方法中也可以检测拥有硬键盘的键盘状态

  1. //检测实体键盘的状态:推出或者合上    
  2. if (newConfig.hardKeyboardHidden ==Configuration.HARDKEYBOARDHIDDEN_NO){ 
  3.    //实体键盘处于推出状态,在此处添加额外的处理代码 
  4. } 
  5. else if (newConfig.hardKeyboardHidden ==Configuration.HARDKEYBOARDHIDDEN_YES){ 
  6.    //实体键盘处于合上状态,在此处添加额外的处理代码 
  7. } 

2.重新载入问题。如果不需要从新载入,可以在AndroidManifest.xml中加入配置android:configChanges="orientation|keyboardHidden",配置android:configChanges的作用就是如文档所说的:Specify one or more configuration changesthat the activity will handle itself. If not specified, the activity will berestarted if any of these configuration changes happen in the system。这样在程序中Activity就不会重复的调用onCreate()甚至不会调用onPause、onResume.只会调用一个onConfigurationChanged(Configuration newConfig)。如果需要重新载入,则不需要做任何修改。不过如果需要在重新载入过程中保存之前的操作内容或数据,则需要保存之前的数据。然后在activity的onCreate()中取出来。当然,如此就不能设置android:configChanges()了,否则就不会调用onCreate()方法。

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

则无论手机如何变动,拥有这个属性的activity都将是竖屏显示。

android:screenOrientation="landscape",为横屏显示。

这里提一个小知识,Android模拟器中,快捷键"Ctrl+F11/F12"可以实现转屏。

原文地址:http://blog.youkuaiyun.com/sunchaoenter/article/details/7224984

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

相关推荐

Android 横竖屏切换总结

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

limushan的博客 1852

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

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

weixin_35346761的博客 654

android用布局切换横竖屏,Android 横竖屏切换加载不同的布局

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

weixin_29174141的博客 3037

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

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

安卓开发&音视频开发 9544

[运动规划算法]基于飞行走廊的轨迹优化

文章目录简介一、介绍二、原理飞行走廊生成三、项目演示参考 简介 Btraj是一个在线的四旋翼无人机的运动规划框架,主要用于未知环境中的自主导航。基于机载状态估计和环境感知,采用基于快速行进(FM *)的路径搜索方法,从基于构建的欧氏距离场(ESDF)中寻找路径,以实现更好的时间分配。通过对环境进行膨胀生成四旋翼无人机的飞行飞行走廊。使用伯恩斯坦多项式将轨迹表示为分段Bezier曲线,并将整个轨迹生成问题转换成凸问题。通过使用Bezier曲线,可以确保轨迹的安全性和高阶动力学可行性,可以将轨迹完全限制在安全

xiewf的博客 8062

电源设计避坑指南:半桥LLC软启动的5个常见错误及解决方案

本文针对半桥LLC谐振变换器软启动过程中的五个常见设计错误,提供了详细的工程解决方案。重点分析了忽视谐振腔初始状态导致的电流冲击、软启动斜坡与环路带宽不匹配、开环到闭环切换时机不当、变压器偏磁以及参数未考虑边界条件等问题,并给出了包括主动预充电、自适应斜坡、最佳切换点判定等实用调试技巧,帮助工程师实现平稳可靠的电源启动。

weixin_29260291的博客 269

android横竖屏切换

横竖屏切换方法:     1.自动切换:         1.通过在androidManifest.xml的activity节点添加screenOrientation属性: //screenOrientation属性说明: unspecified:默认值,由系统决定; lands...

divaid的博客 8596

从零到一:基于STM32F103C8T6与HAL库的磁悬浮电赛装置实战解析

本文详细解析了基于STM32F103C8T6微控制器与HAL库,从零构建磁悬浮装置的完整实战方案。文章深入剖析了硬件设计中的线圈布局与“反向串联”巧思,以节省PWM资源;并阐述了采用三闭环PID控制算法的软件实现,结合Keil开发环境与HAL库进行工程搭建与调试。该方案为电子设计竞赛(电赛)提供了高可行性的参考,是嵌入式软硬件综合实践的优秀范例。

weixin_29169505的博客 273

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

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

weixin_39613951的博客 1769

HCIA-Storage 存储工程师学习笔记——1. 存储技术趋势

文章目录1. 存储技术趋势1.1 数据、信息与数据存储1.2 存储技术的发展①存储架构的发展②存储介质的发展③ 接口协议的发展1.3 存储产品的发展趋势 华为HCIA-Storage认证地址:https://e.huawei.com/cn/talent/#/cert/roadmap 1. 存储技术趋势 1.1 数据、信息与数据存储 什么是数据? ​ 数据是对所有事物的数字表示。 数据的种类? 结构化数据 半结构化数据 非结构化数据 数据的处理周期 ​ 数据处理是人或机器对数据进行的重组或重新排序,

超级大洋葱的博客 2842

MATLAB MinGW-w64 C/C++ 编译器 手动安装配置

根据Matlab版本与MinGW版本对应关系,手动安装、配置并测试MinGW

zjh2883的博客 7340

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

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

weixin_29786123的博客 489

《Halcon 100项目-9》Halcon彩色线序检查

Halcon彩色线序检查

doubleintfloat的博客 1042

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

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

weixin_42340136的博客 4965

第9章:Embedding、Pooling 与检索增强基础

本文介绍了律师事务所如何利用vLLM构建法律文档RAG系统,解决传统关键词检索在语义匹配上的不足。主要内容包括: 项目背景:传统Elasticsearch检索在法律术语上的低准确率问题,及多模型维护的复杂性; 技术方案:采用vLLM统一支持生成和向量化能力,通过语义向量检索提升相关性; 关键实现: 用vLLM的Embedding端点处理文档向量化 构建包含离线索引和在线检索的完整RAG流程 采用余弦相似度进行语义匹配 实践建议:切片大小选择、向量归一化处理、不同场景下的数据库选型等。

davidwang456的专栏 59

[ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429

[ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429 可以使用一些编码字符来制作URI,以访问WEB-INF目录的内容和/或绕过一些安全限制。默认合规模式允许带有包含 %u002e 段的 URI 的请求访问WEB-INF目录中的受保护资源。

qq_51577576的博客 3208

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

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

qq_43345810的博客 969

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

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

weixin_36249942的博客 771

jre9下载 jdk9

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

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android开发横竖屏切换

平时在使用手机过程中遇到过手机屏幕横竖切换的现象,当时感觉很简单,不过在具体的实际开发中还是遇到了点麻烦,不过在查阅了官网和浏览了网页后,顺利把问题解决了,先把成果分享给大家。 横竖屏切换大体可以分为如下几种: 一、禁止APP内横竖屏切换的现象。 我们的手机系统内置了横竖屏切换的功能,当我们没有关闭此功能时,系统一旦触发横竖屏切换,在缺省值的情况下,当前活动的APP界面就会进行相应的横竖屏切

奋斗青年一族的博客 1227

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android webview 横竖屏_Android 切换横竖屏

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

weixin_35171513的博客 2521

android横竖屏切换函数,Android横竖屏切换小结.PDF

Android横竖屏切换小结Android横竖屏切换小结Android手机或平板都会存在横竖屏切换的功能,通常是由物理重力感应触发的,但是有时候也不尽然,通常在设置里面我们可以对手机的横竖屏切换进行关闭,操作界面如下只需要点击下“屏幕旋转”按钮就可以关闭横竖屏切换了。一、禁止APP 内横竖屏切换上述设置更改的是整个手机的横竖屏切换,当手机没有关闭横竖屏切换功能时,系统一旦触发横竖屏切换,缺省状态下...

weixin_26704885的博客 264
上一篇: 适配不同分辨率横屏竖屏
下一篇: Android横屏竖屏切换总结
androidboy365
博客等级 码龄16年 35粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值