我返现,90度横屏 旋转到270度横屏onConfigurationChanged 是收不到回掉的。尽管清单里面声明了什么:

android:configChanges=”orientation|keyboardHidden|navigation|screenSize|layoutDirection|smallestScreenSize|screenLayout|mnc”

没用。

那怎么办? 通过监听手机旋转,自己判断吧:

    private int mIsLandRightOrientation = -1;            //是否已经处于横屏状态,-1为未初始化,1为非左横屏(手机刘海朝左边的情况,即90度),2为右横屏(手机刘海朝右边的情况,及270度)

    private OrientationEventListener mOrientationEventListener; //旋转监听 因为异形屏需要知道横屏从90旋转到了270 而添加
private Display mDisplay; mOrientationEventListener = new OrientationEventListener(this, SensorManager.SENSOR_STATUS_ACCURACY_LOW){
@Override
public void onOrientationChanged(int orientation) {
int ro = orientation % 360;
// 设置横屏 260
if (((ro > 260) && (ro < 315))) {//当前手机刘海方向朝左边的情况
if (mIsLandRightOrientation == 2 || mIsLandRightOrientation == -1) {//如果说之前的方向是右边,往下处理 否则不处理
if (getScreenRotationOnPhone() == Surface.ROTATION_90) {//如果当前屏幕的布局方向是相左,说明屏幕旋转了 那么进去处理paddding
mIsLandRightOrientation = 1;
adjustPadding();
}
}
}else if((ro > 80 && ro < 135)){//手机刘海朝右边的情况
if (mIsLandRightOrientation == 1 || mIsLandRightOrientation == -1) {
if (getScreenRotationOnPhone() == Surface.ROTATION_270) {
mIsLandRightOrientation = 2;
adjustPadding();
}
}
}
}
};
mOrientationEventListener.enable(); private int getScreenRotationOnPhone() {
if (mDisplay == null) {
mDisplay = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
}
return mDisplay!=null ? mDisplay.getRotation():-1;
}

原理就是通过监听手机旋转,然后在根据屏幕方向,精确判断手机横屏90度到270的转换。

最新文章

  1. python学习6
  2. KnockoutJS 3.X API 第五章 高级应用(5) 使用预处理扩展Knockout绑定语法
  3. 简述Java内存模型的由来、概念及语义
  4. Linux异步IO【转】
  5. jQuery图表开源软件
  6. Java Web开发 之小张老师总结GET和POST区别
  7. SIGGRAPH
  8. opencv学习笔记-图像对比度、亮度调节
  9. Fedora 22(15以上版本)开机自启动脚本
  10. 【攻防实战】SQL注入演练!
  11. Sublimetext3安装Emmet插件步骤
  12. Ubuntu如何配置SSH免密登录
  13. spring2.0 mybatis JDBC配置
  14. js中关于声明提前的几个误区
  15. 影响solr性能的一些因素(附使用经验)
  16. Linux-3.0.8 input subsystem代码阅读笔记
  17. Python加载声音
  18. Java Web之验证码
  19. linux命令:linux文件处理命令
  20. html标签种类

热门文章

  1. 夜色的 cocos2d-x 开发笔记 00
  2. Linux命令之查看日志等实时文件命令(less 、tail)使用
  3. centos6.5_64bit-Tomcat7安装部署
  4. TP5.1:实现分页
  5. ARM实验2 —— 蜂鸣器实验
  6. CopyTranslator-复制即翻译的外文辅助阅读翻译解决方案
  7. bzoj1801 [Ahoi2009]中国象棋
  8. uva题库爬取
  9. Unable to launch the Java Virtual Machine
  10. npm包发布过程