Android屏幕旋转,赶紧学习一下
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屏幕旋转,赶紧学习一下相关推荐
- Android屏幕旋转时Activity不重新调用onCreate的方法
2019独角兽企业重金招聘Python工程师标准>>> android屏幕旋转时Activity不重新调用onCreate的方法 当手机转屏时,Activity的onDestroy和 ...
- Android 屏幕旋转时Activity的变化
Android开发文档上专门有一小节解释这个问题.简单来说,Activity是负责与用户交互的最主要机制,任何"设置"(Configuration)的改变都可能对Activity的 ...
- 通过广播获取Android屏幕旋转事件
Android获取系统屏幕旋转的方式有几种,其中比较常见的是通过重写Activity中的onConfigurationChanged方法,但是这种方法有个缺陷,当测试程序在后台运行的时候不能 ...
- android 屏幕旋转不重新加载,Android webview旋转屏幕导致页面重新加载问题解决办法...
Android webview旋转屏幕导致页面重新加载问题解决办法 1. 在create时候加个状态判断 protected void onCreate(Bundle savedInstanceSta ...
- android 屏幕旋转流程,android自动屏幕旋转流程分析.doc
android自动屏幕旋转流程分析.doc android自动屏幕旋转流程分析 在android设置(Settings)中我们可以看到显示(display)下有一个自动屏幕旋转的checkbox, 如 ...
- android 屏幕方向监听,android 屏幕旋转问题 - jwzhangjie的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
settings设置 在Android的Settings-> Display中有Orientation这一设置项.当选中时,屏幕会随设备旋转. settings设置是在文件SoundAndDis ...
- Android 屏幕旋转 全解析
屏幕旋转一般的解决方案 关于屏幕旋转这里,之前一直没太注意,因为根据设备会有指定的屏幕旋转策略如: 开发手机应用时一直使用强制竖屏布局 开发平板设备一直使用横屏布局 开发系统应用,一般给两套即横竖各一 ...
- android 屏幕旋转
基本思路:在输入事件分发线程中(代码在WindowManagerService.java中),当事件为按键事件而且按键码与自定义功能键的码值一样时,向一个特定的Service(如com.android ...
- Android 屏幕旋转的处理
1. 不做任何处理的情况下 如果没有针对性地做任何处理的话,默认情况下,当用户手机的重力感应器打开后,旋转屏幕方向,会导致app的当前activity发生onDestroy-> onCreate ...
最新文章
- mono和monodevelop源码编译安装
- Jenkins创建Maven项目及SSH部署
- 考试 彩色 离散化+类暴力
- 飞鸽传书2014怎么用?
- 【Elasticsearch】如何在生产中执行Elasticsearch的零停机升级
- 微软设计套装 Expression Studio 4 (Ultimate+Web Pro+Encoder Pro) 最新版下载
- 添加内核驱动模块(2)(mydriver.c+ Konfig+Makefile )
- SAP 软件价格体系及SAP项目实施费用构成介绍
- PID算法的原理和公式
- CAD教程:如何将Excel数据快速导入CAD图纸
- VBlog 纯前端博客 2018.5.15更新
- 【渝粤题库】陕西师范大学165109 绩效管理 作业(高起专)
- 论文-Knowledge Graph Grounded Goal Planning for Open-Domain Conversation Generation
- Julia学习04——函数
- backdrop-filter
- Linux文件内容查阅 - cat, tac, nl, more, less, head, tail, od
- JeeSite(2):导入数据,进入系统
- 微信小程序刷新页面数据
- 中国石油大学(北京)-《外国文学作品选读》第一阶段在线作业
- 利用 Python 爬取了近 3000 条单身女生的数据,究竟她们理想的择偶标准是什么?
热门文章
- 收藏的博客 -- Qt有关的GitHub/Gitee开源项目
- 弘辽科技:零食市场内卷化 洽洽的功守道
- ubuntu,Debian卸载阿里云盾监控shell脚本:Syntax error: Bad for loop variable错误解决方法
- html5项目改造Vue工程化
- Discom BKS03/KS91D传感器
- Java程序员的职业规划是什么?叩丁狼的建议
- 【项目三、车牌检测+识别项目】三、LPRNet车牌识别网络原理和核心源码解读
- HTML中Table去掉两边的边框
- Win10 电脑磁盘分区
- flvplayer.swf flv视频播放器使用方法 (转载)