Android——横屏竖屏

系统配置变更的处理机制

为了避免横竖屏切换时重新加载界面的情况,Android设计了一中配置变更机制,在指定的环境配置发生变更之时,无需重启活动页面,只需执行特定的变更行为。该机制的视线过程分为两步:

  • 修改 AndroidManifest.xml,给 activity 节点增加 android.configChanges 属性
  • 修改活动页面的Java代码,重写活动的 onConfigurationChanged 方法,补充对应的代码处理逻辑。
java 复制代码
    // 在配置项变更时触发。比如屏幕方向发生变更等
    @Override
    public void onConfigurationChanged(@NonNull Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        switch (newConfig.orientation) {
            case Configuration.ORIENTATION_PORTRAIT:
                tv_monitor.setText("当前屏幕方向为:竖屏");
                break;
            case Configuration.ORIENTATION_LANDSCAPE:
                tv_monitor.setText("当前屏幕方向为:横屏");
                break;
            default:
                break;
        }
    }
xml 复制代码
        <activity
            android:name=".ChangeDirectionActivity"
            android:configChanges="orientation|screenLayout|screenSize"
            android:exported="true">
  • 配置变更的豁免情况
    当是这些值发生变化的时候,Activity不会重新再创建

锁定屏幕方向

  • screenOrientation

landscape :横屏
portrait:竖屏

xml 复制代码
       <activity
            android:name=".ChangeDirectionActivity"
            android:configChanges="orientation|screenLayout|screenSize"
            android:screenOrientation="landscape"
            android:exported="true">

案例代码

相关推荐
用户2018792831674 分钟前
Java序列化之幽灵船“Serial号”与永生契约
android·java
用户2018792831675 分钟前
“对象永生”的奇幻故事
android·java
枷锁—sha1 小时前
【BUUCTF系列】[HCTF 2018]WarmUp1
android·网络·web安全·网络安全
梦想改变生活2 小时前
《Flutter篇第二章》MasonryGridView瀑布流列表
android·flutter
杨航 AI2 小时前
PHP 5.5 Action Management with Parameters (English Version)
android·开发语言·php
柿蒂4 小时前
一次Android下载优化,CDN消耗占比从50+%到1%
android·android jetpack
Andrew_Ryan4 小时前
gradle set up
android
_祝你今天愉快6 小时前
在安卓中使用 FFmpegKit 剪切视频并添加文字水印
android·ffmpeg
编程乐学8 小时前
网络资源模板--基于Android Studio 实现的新闻App
android·android studio·移动端开发·新闻·安卓大作业·新闻app
-曾牛8 小时前
PHP 与 MySQL 详解实战入门(1)
android·开发语言·mysql·渗透测试·php·php教程·脚本语言