Android基础篇 屏幕横竖屏切换(layout-land)下篇
默认情况下Activity进行屏幕旋转会自动进行onDestroy并重新onCreate
一、非默认情况下
在AndroidManifest.xml的Activity中配置
<activityandroid:name=".ui.activity.XXXXXActivity"android:launchMode="singleTask"android:screenOrientation="portrait"android:configChanges="keyboardHidden|orientation|screenSize"android:windowSoftInputMode="adjustPan" />
(1)禁止屏幕旋转
//始终竖屏android:screenOrientation="portrait"//始终横屏android:screenOrientation="landscape"
(2)Activity跟随旋转但不销毁和重启
android:configChanges="keyboardHidden|orientation|screenSize"
然后在Activity中重写onConfigurationChanged
方法
(仅作为监听屏幕横竖屏状态,吐司提示,可以不要)
@Overridepublic void onConfigurationChanged(Configuration newConfig) {super.onConfigurationChanged(newConfig);if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){Toast.makeText(this,"竖屏模式",Toast.LENGTH_SHORT).show();}else{Toast.makeText(this,"横屏模式",Toast.LENGTH_SHORT).show();}}
public static final int ORIENTATION_PORTRAIT = 1; // 标识竖屏
public static final int ORIENTATION_LANDSCAPE = 2; //标识横屏
二、通过 layout-land 构建专属的横屏布局模式
1、首先在工程res目录下新建一个layout-land
2、其次在layout-land目录中新建一个同名
但是是横屏效果的布局
3、代码
@Overridepublic void onClick(View view) {//按钮控制切换横竖屏 R.id.img_rotate : 自己定义的一个按钮if (view.getId() == R.id.img_rotate){int screenNum = getResources().getConfiguration().orientation;//判断屏幕当前状态if (screenNum != Configuration.ORIENTATION_LANDSCAPE){//切换成横屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);}else {//切换成竖屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}}}
按照上面的流程,构建需要横屏效果的layout-land目录布局,就可以达到有效解决屏幕横竖屏切换啦
三、其他系列文章
Android基础篇 屏幕横竖屏切换以及生命周期管理 上篇
https://blog.csdn.net/weixin_44720673/article/details/114628214
Android基础篇 屏幕横竖屏切换(layout-land)下篇相关推荐
- 解决Android手机 屏幕横竖屏切换
Android中当屏幕横竖屏切换时,Activity的生命周期是重新加载(说明当前的Activity给销毁了,但又重新执行加载),怎么使屏幕横竖屏切换时,当前的Activity不销毁呢? 1. 在An ...
- android横竖屏切换动画,Android应用怎么实现屏幕横竖屏切换功能
Android应用怎么实现屏幕横竖屏切换功能 发布时间:2020-11-26 15:48:57 来源:亿速云 阅读:121 作者:Leah Android应用怎么实现屏幕横竖屏切换功能?针对这个问题, ...
- android 获得屏幕方向,Android 获取设置屏幕横竖屏
Android 获取设置屏幕横竖屏 发布时间:2020-08-06 03:23:17 来源:51CTO 阅读:351 作者:huyanruirui 方法一: screenOrientation = a ...
- cocos2d-x游戏开发屏幕横竖屏切换
android解决方案: 1.在游戏的主activity中编写一个静态方法(继承Cocos2dxActivity) public static void changedActivityOrientat ...
- ios 旋转屏幕试图切换_iOS屏幕横竖屏切换
iOS屏幕横竖屏切换 胡东东博客 • 2020 年 10 月 25 日 搜了网上的教程是真的乱,废话不多说,这里从启动到具体的VC,横竖屏切换完美搞定. 如果你的app只需要支持一个方向,那么不需要看 ...
- android compose webview视频播放横竖屏切换
先看演示 compose webview横竖屏切换 1.添加依赖: 文档 implementation "com.google.accompanist:accompanist-webview ...
- android判断手机屏幕横竖屏
在一个Activity显示中判断当前屏幕横竖屏情况有几种方法: Configuration configuration = getResources().getConfiguration(); if ...
- android 屏幕横竖屏切换时生命周期运行详解,创建横屏layout,has no declaration in the base
横屏代码 1.配置文件设置 android:screenOrientation="landscape" 2.java代码设置 setRequestedOrientation(Act ...
- Android横竖屏切换小结
(老样子,图片啥的详细文档,可以下载后观看 http://files.cnblogs.com/franksunny/635350788930000000.pdf) Android手机或平板都会存在横竖 ...
最新文章
- OFDM调制系统传输的复信号从何而来?
- 404 – File or directory not found.
- 世界奥运建筑文学第一书 北京奥运长篇纪实第一人
- 摆脱加卡他卡_如何通过三个简单的步骤摆脱“故事卡地狱”。
- Redis数据库-键的生存时间与过期时间的区别
- java运输_JAVA-基础-方法
- linux内核module_init,Linux内核模块中module_init和init_module有什么区别?
- 武汉街头出现手机无线充电路灯,极速快充,但需注意这一点!
- full outer join 与full join的区别_基础小白的SQL的JOIN语法解析
- 浅析免费加密软件应该如何选择性下载
- max3232ese_MAX3232CSE使用指南,MAX3232CES和MAX3232ESE有什么区别?
- iOS依赖注入框架系列(三):模块化Typhoon
- 善于抓住80后消费者的消费心理
- JavaScript级联链表
- 设计模式之 Vistor 访问者模式:Swift 实现
- 文本相似度 Text Similarity
- 判断手机号输入的是否正确
- K8s 架构简介(一)
- python数据可视化——英雄联盟人物战力分析(条形图)
- 360安装 css3插件,Omi官方插件系列 。。支持CSS3 Transform设置
热门文章
- 消息中心构架设计说明书
- git报错ssh: Could not resolve hostname dev-nys: Name or service not known fatal: Could not read from r
- android8.1系统静默安装问题(无须手动点击)
- 上传本地.xlsx(.xls)文件,实现页面表格数据预览
- Javaweb(邮件发送)
- mybatis-plus存数组对象,并从数据库查出这个数组
- [Simulink] 代数环问题笔记
- xctf攻防世界 MISC高手进阶区 黄金六年
- OC基础语法-1.OC和C语言的对比
- 洗地机充电底座语音芯片选型?NV040DS语音芯片