zoukankan      html  css  js  c++  java
  • 028、动态更改屏幕方向及捕捉屏幕改变事件

    1、动态改变屏幕方向
    在Android中,通过setRequestedOrientation()方法更改屏幕方向,通过getRequestedOrientation()方法获取屏幕方向
    注意,要在AndroidManifest.xml文件中,添加android:screenOrientation="portrait",可添加在Activity下。
    方法一,根据getRequestedOrientation()判断当前屏幕显示方向,代码如下:
                    switch (getRequestedOrientation()) {
                    case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE://当前横屏,转为竖屏
                        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                        break;
                    case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT://当前竖屏,转为横屏
                        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                        break;
                    default:
                        Toast.makeText(MainActivity.this, "getRequestedOrientation()="+getRequestedOrientation(), 0).show();
                        break;
                    }

      

    方法二,更加屏幕宽高比判断方向,代码如下:
            final Display display = getWindow().getWindowManager().getDefaultDisplay();
     
                    if(display.getWidth()>display.getHeight()){
                        //当前横屏,转为竖屏
                        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
                    }else{
                        //当前竖屏,转为横屏
                        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
                    }
                }
    2、捕获屏幕改变事件:
    在AndroidManifest.xml文件中,需要添加权限
     <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>

     

    在对应Activity节点中添加android:configChanges="orientation|keyboard"
    java代码如下:
    复写onConfigurationChanged方法
        @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            switch (newConfig.orientation) {
            case Configuration.ORIENTATION_LANDSCAPE:
                bt.setText("旋转为竖屏");
                break;
            case Configuration.ORIENTATION_PORTRAIT:
                bt.setText("旋转为横屏");
                break;
            }
        }
     
  • 相关阅读:
    Ubuntu 14.04 设置静态IP
    Spring MVC 入门就这一篇
    一站式轻量级框架 Spring
    深入 Web 请求过程
    使用 Docker Compose 搭建 Nexus 依赖私服及使用配置
    Spring Cloud Alibaba 与 Dubbo 的完美融合
    使用 Spring Cloud Alibaba Nacos Config 作为配置中心
    使用 Spring Cloud Alibaba Nacos 实现服务注册与发现
    Spring Boot 监听 Redis Key 失效事件实现定时任务
    使用 Spring Boot Admin 监控服务
  • 原文地址:https://www.cnblogs.com/zyh-blog/p/3343691.html
Copyright © 2011-2022 走看看