ActivityInfo.SCREEN_ORIENTATION_SENSOR //根据传感器设置方向

ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR //根据传感器设置方向,但是这个可以让屏幕旋转180度

以上所列的 属性 是我们常用的,还有一些其他属性大家可以自行尝试。

将以上属性设置给自己的app,需要用到以下这个Api,在 onCreate 中使用就可以了。

//设置方向

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER);

监听分析

====

我们做安卓开发啊,总要想这么件事,就是当一个事件发生了,我们该如获取它。在这个地方,我们得明白,当屏幕发生旋转的时候,我们该在哪里捕捉这个事件。请看下面分析。

首先,这个涉及复写一个方法 onConfigurationChanged();

如果你是是简单的复写这个方法,是没有任何作用的,还得到 AndroidManifest.xml 文件中配置一下

android:configChanges=“orientation|screenSize” 两个属性缺一不可 Android Api13之后的要求

完整代码

package com.wust.myapplication;

import androidx.annotation.NonNull;

import androidx.appcompat.app.AppCompatActivity;

import android.content.pm.ActivityInfo;

import android.content.res.Configuration;

import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//设置方向

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER);

System.out.println(“我被调用了”);

}

@Override

public void onConfigurationChanged(@NonNull Configuration newConfig) {

System.out.println(“onConfigurationChanged被调用了 ->” + newConfig);

super.onConfigura

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

tionChanged(newConfig);

}

}

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android=“http://schemas.android.com/apk/res/android”

package=“com.wust.myapplication”>

<application

android:allowBackup=“true”

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"

android:supportsRtl=“true”

android:theme="@style/Theme.SelfToolbar">

<activity

android:name=".MainActivity"

android:configChanges=“orientation|screenSize”> //这里得配置一下,作用后面会说明

android:configChanges=“orientation|screenSize” 作用说明

通过查阅Android API可以得知android:onConfigurationChanged实际对应的是Activity里的onConfigurationChanged()方法。在AndroidManifest.xml中添加上诉代码的含义是表示在改变屏幕方向、弹出软件盘和隐藏软键盘时,不再去执行onCreate()方法,而是直接执行onConfigurationChanged()。如果不申明此段代码,按照Activity的生命周期,都会去执行一次onCreate()方法,而onCreate()方法通常会在显示之前做一些初始化工作。所以如果改变屏幕方向这样的操作都去执行onCreate()方法,就有可能造成重复的初始化,降低程序效率是必然的了,而且更有可能因为重复的初始化而导致数据的丢失。这是需要千万避免的。

注意: orientation|screenSize 两个属性申明缺一不可

补充:

getRequestedOrientation() 与 setRequestedOrientation() 作用正好相反

Android屏幕旋转,赶紧学习一下相关推荐

  1. Android屏幕旋转时Activity不重新调用onCreate的方法

    2019独角兽企业重金招聘Python工程师标准>>> android屏幕旋转时Activity不重新调用onCreate的方法 当手机转屏时,Activity的onDestroy和 ...

  2. Android 屏幕旋转时Activity的变化

    Android开发文档上专门有一小节解释这个问题.简单来说,Activity是负责与用户交互的最主要机制,任何"设置"(Configuration)的改变都可能对Activity的 ...

  3. 通过广播获取Android屏幕旋转事件

         Android获取系统屏幕旋转的方式有几种,其中比较常见的是通过重写Activity中的onConfigurationChanged方法,但是这种方法有个缺陷,当测试程序在后台运行的时候不能 ...

  4. android 屏幕旋转不重新加载,Android webview旋转屏幕导致页面重新加载问题解决办法...

    Android webview旋转屏幕导致页面重新加载问题解决办法 1. 在create时候加个状态判断 protected void onCreate(Bundle savedInstanceSta ...

  5. android 屏幕旋转流程,android自动屏幕旋转流程分析.doc

    android自动屏幕旋转流程分析.doc android自动屏幕旋转流程分析 在android设置(Settings)中我们可以看到显示(display)下有一个自动屏幕旋转的checkbox, 如 ...

  6. android 屏幕方向监听,android 屏幕旋转问题 - jwzhangjie的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    settings设置 在Android的Settings-> Display中有Orientation这一设置项.当选中时,屏幕会随设备旋转. settings设置是在文件SoundAndDis ...

  7. Android 屏幕旋转 全解析

    屏幕旋转一般的解决方案 关于屏幕旋转这里,之前一直没太注意,因为根据设备会有指定的屏幕旋转策略如: 开发手机应用时一直使用强制竖屏布局 开发平板设备一直使用横屏布局 开发系统应用,一般给两套即横竖各一 ...

  8. android 屏幕旋转

    基本思路:在输入事件分发线程中(代码在WindowManagerService.java中),当事件为按键事件而且按键码与自定义功能键的码值一样时,向一个特定的Service(如com.android ...

  9. Android 屏幕旋转的处理

    1. 不做任何处理的情况下 如果没有针对性地做任何处理的话,默认情况下,当用户手机的重力感应器打开后,旋转屏幕方向,会导致app的当前activity发生onDestroy-> onCreate ...

最新文章

  1. mono和monodevelop源码编译安装
  2. Jenkins创建Maven项目及SSH部署
  3. 考试 彩色 离散化+类暴力
  4. 飞鸽传书2014怎么用?
  5. 【Elasticsearch】如何在生产中执行Elasticsearch的零停机升级
  6. 微软设计套装 Expression Studio 4 (Ultimate+Web Pro+Encoder Pro) 最新版下载
  7. 添加内核驱动模块(2)(mydriver.c+ Konfig+Makefile )
  8. SAP 软件价格体系及SAP项目实施费用构成介绍
  9. PID算法的原理和公式
  10. CAD教程:如何将Excel数据快速导入CAD图纸
  11. VBlog 纯前端博客 2018.5.15更新
  12. 【渝粤题库】陕西师范大学165109 绩效管理 作业(高起专)
  13. 论文-Knowledge Graph Grounded Goal Planning for Open-Domain Conversation Generation
  14. Julia学习04——函数
  15. backdrop-filter
  16. Linux文件内容查阅 - cat, tac, nl, more, less, head, tail, od
  17. JeeSite(2):导入数据,进入系统
  18. 微信小程序刷新页面数据
  19. 中国石油大学(北京)-《外国文学作品选读》第一阶段在线作业
  20. 利用 Python 爬取了近 3000 条单身女生的数据,究竟她们理想的择偶标准是什么?

热门文章

  1. 收藏的博客 -- Qt有关的GitHub/Gitee开源项目
  2. 弘辽科技:零食市场内卷化 洽洽的功守道
  3. ubuntu,Debian卸载阿里云盾监控shell脚本:Syntax error: Bad for loop variable错误解决方法
  4. html5项目改造Vue工程化
  5. Discom BKS03/KS91D传感器
  6. Java程序员的职业规划是什么?叩丁狼的建议
  7. 【项目三、车牌检测+识别项目】三、LPRNet车牌识别网络原理和核心源码解读
  8. HTML中Table去掉两边的边框
  9. Win10 电脑磁盘分区
  10. flvplayer.swf flv视频播放器使用方法 (转载)