正常的判断屏幕方向的代码:

    /** 获取屏幕是否是竖屏
* @return
*/
@SuppressLint("SwitchIntDef")
public boolean isScreenPortrait(){
int or = getRequestedOrientation();
switch (or) {
case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE :// 横屏
case ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE:
return false;
case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT :// 竖屏
case ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT:
return true;
default:
return true;
}
}

但是在onConfigurationChanged

        switch (newConfig.orientation) {
case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE :// 横屏
case ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE:
APP.isScreenPortrait = false;
break;
case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT :// 竖屏
case ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT:
APP.isScreenPortrait = true;
break;
}

我就很随意的这样写了,本来我都不想测试,我觉得一定是对的。然后跑了一下程序,发现,是错的。我点击去

onConfigurationChanged(Configuration newConfig) 的switch (newConfig.orientation) 这个类,发现:

    /**
* Overall orientation of the screen. May be one of
* {@link #ORIENTATION_LANDSCAPE}, {@link #ORIENTATION_PORTRAIT}.
*/
public int orientation;

发现这里的值只能是#ORIENTATION_LANDSCAPE}, {@link #ORIENTATION_PORTRAIT其中的一个。啊,自己的无知。应该去点进去看看人家会传递回来什么信息的。然后正确的判断是:

        switch (newConfig.orientation) {
case Configuration.ORIENTATION_LANDSCAPE :// 横屏
APP.isScreenPortrait = false;
break;
case Configuration.ORIENTATION_PORTRAIT :// 竖屏
APP.isScreenPortrait = true;
break;
}

最新文章

  1. ZOJ 3686 A Simple Tree Problem
  2. Linux安装Go语言
  3. thinkPHP-空操作
  4. http响应报文和http请求报文 详细信息
  5. hadoop、hbase、hive、zookeeper版本对应关系
  6. [原创]如何写好SqlHelper 之终章
  7. 关键字 const
  8. Java实现SSO
  9. 关于 Boolean 的转换
  10. django post方法不能提交
  11. docker private registry使用
  12. 【iOS-Android开发对照】之 数据存储
  13. iOS7,8 presentViewController 执行慢
  14. 一些javascript常用方法
  15. PHOTOSHOP常用快捷键大全
  16. 史上最全 | 39个RNAseq分析工具与对比
  17. Java基础方法整理
  18. NET Core小细节杂记
  19. rabbitMQ和对应的erlang版本匹配
  20. 《Go语言实战》摘录:7.3 并发模式 - work

热门文章

  1. System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值
  2. JS兼用IE8的通过class名获取CSS对象组
  3. 简单粗暴的更换固态硬盘及WIN10 Ubuntu双系统
  4. window下编译ffmpeg
  5. 如何在win10中安装ArcGIS10.2
  6. 【CCPC-Wannafly Winter Camp Day4 (Div1) H】命命命运(概率DP)
  7. c#方法(整理自菜鸟网)
  8. Maven 引入war工程【work】
  9. java高并发之CountDownLatch,CyclicBarrier和join
  10. django+xadmin在线教育平台(八)